Análise de Insumo-Produto:
teoria e aplicações no R

Vinícius A. Vale\(^{\Phi}\)
Fernando S. Perobelli\(^{\Theta}\)
Setembro, 2020

\(^{\Phi}\)Professor do Departamento de Economia e do Programa de Pós-Graduação em Desenvolvimento Econômico (PPGDE) da Universidade Federal do Paraná (UFPR) e Pesquisador do Núcleo de Estudos em Desenvolvimento Urbano e Regional (NEDUR)

\(^{\Theta}\)Professor do Departamento de Economia e do Programa de Pós-Graduação em Economia (PPGE) da Universidade Federal de Juiz de Fora (UFJF) e Pesquisador do Laboratório de Análises Territoriais e Setoriais (LATES)


Apoio e Cooperação Institucional:


       


1. Introdução

Esse material Análise de Insumo-Produto: teoria e aplicações no R tem como objetivo apresentar a estrutura teórica dos modelos de insumo-produto, bem como aplicações práticas com o software R (RStudio). Cabe ressaltar que as aplicações são baseadas em aspectos da economia brasileira. Portanto, com esse material, o leitor deverá estar apto para entender a estrutura teórica e operar modelos de insumo-produto.

A construção desse material se beneficiou, em grande parte, do material disponibilizado pelos Professores Eduardo A. Haddad (USP, NEREUS), Joaquim J. M. Guilhoto (OCDE, NEREUS), Fernando S. Perobelli (UFJF, LATES) e Vinicius A. Vale (UFPR, NEDUR) em suas respectivas disciplinas:

  • Modelos Aplicados de Equilíbrio Geral ministrada pelo Prof. Dr. Eduardo A. Haddad no Programa de Pós-graduação em Economia da Universidade de São Paulo (USP).
  • Análise de Insumo-Produto ministrada pelo Prof. Dr. Joaquim J. M. Guilhoto no Programa de Pós-graduação em Economia da Universidade de São Paulo (USP).
  • Métodos de Análise Regional ministrada pelo Prof. Dr. Fernando S. Perobelli no Programa de Pós-graduação em Economia da Universidade Federal de Juiz de Fora (UFJF).
  • Análise de Insumo-Produto ministrada pelo Prof. Dr. Vinícius A. Vale no Programa de Pós-graduação em Desenvolvimento Econômico da Universidade Federal do Paraná (UFPR).

Dessa forma, agradecemos os Professores Eduardo A. Haddad e Joaquim J. M. Guilhoto pelos ensinamentos e disponibilidade dos materiais. Inclusive, deixamos acima e nas referências os links para que os leitores tenham acesso aos materiais e outras aplicações.

Ressaltamos que, com esse material, pretendemos contribuir positivamente com a ampliação do conhecimento tanto em termos teóricos dos modelos de insumo-produto, como em termos de aplicações com o R, especialmente, nos cursos de graduação e pós-graduação da área de Economia.


O material é livre e está licenciado com uma Licença CC BY-NC-SA 4.0. Atualizações podem ser consultadas no site do Núcleo de Estudos em Desenvolvimento Urbano e Regional - NEDUR - da Universidade Federal do Paraná (UFPR).

Na utilização ou citação de partes do material, referencie da seguinte maneira:

VALE, A. V.; PEROBELLI, F. S. Análise de Insumo-Produto: teoria e aplicações no R. Núcleo de Estudos em Desenvolvimento Urbano e Regional (NEDUR) da Universidade Federal do Paraná (UFPR), Curitiba-PR, 2020. Disponível em: http://www.nedur.ufpr.br/portal/cursos


Bons estudos!

2. Instalando o R e o RStudio

Para replicar os passos abaixo, será necessário instalar o R e o RStudio. Faça o download dos dois programas nos links abaixo:



Instale primeiro o R e depois o RStudio!


Repare que, após a instalação do R e do RStudio, dois aplicativos estarão disponíveis no seu computador. Nesse material, vamos usar o RStudio, um ambiente de desenvolvimento integrado (IDE - Integrated Development Enviroment) ao R.

Procure pelo ícone do RStudio:


ATENÇÃO! Se você está abrindo o R pela primeira vez ou tem pouca experiência com o software, veja o Curso Introdução ao R disponível no site do Núcleo de Estudos em Desenvolvimento Urbano e Regional (NEDUR) da Universidade Federal do Paraná.

Acesse www.nedur.ufpr.br.


3. Passos iniciais

3.1. R Script

Para começar, abra um novo R Script. Clique em File > New File > R Script. Alternativamente, você pode usar o atalho Ctrl + Shift + N.


ATENÇÃO! Você pode facilmente copiar e colar os comandos abaixo no seu R Script e Console do RStudio. Entretanto, se preferir, você também pode fazer o download do R Script completo AQUI.


RSCript

ATENÇÃO! O R é case-sensitive, ou seja, sensível a letras maiúsculas e minúsculas. “View” e “view”, por exemplo, são coisas diferentes para o R. Assim como “x” e “X”. Fique atento!


Observação: Para incluir comentários no R Script utilize #.


3.2. Diretório de trabalho

Para começar de fato a trabalhar no RStudio, defina o diretório de trabalho. Você pode verificar o diretório de trabalho “setado” com a função getwd(). Digite getwd() no Console.

getwd()
## [1] "C:/Users/vinic/OneDrive/R-VALE/Insumo-Produto"


Observe que o R irá retornar o diretório “setado”. Para definir um diretório de trabalho diferente, podemos usar a função setwd(). Digite o seu caminho, conforme exemplo abaixo.

Você pode copiar facilmente o caminho direto da sua pasta. Lembre-se apenas que o R utiliza a barra invertida / ou duas barras normais \\.


‣ Opção com /:

setwd("C:/Users/vinic/OneDrive/R-VALE/Insumo-Produto")

‣ Opção com \\:

setwd("C:\\Users\\vinic\\OneDrive\\R-VALE\\Insumo-Produto")


Caso tenha dificuldades com a função setwd(), utilize o atalho Ctrl + Shift + H e escolha a pasta desejada. Depois, confira se o caminho foi “setado” corretamente com a função getwd().

3.3. Pacotes

Nesse material, vamos usar os seguintes packages (pacotes) para ler, manipular dados, gerar tabelas e gráficos:


Para instalar um pacote no R, devemos usar a função install.packages():

install.packages("openxlsx")
install.packages("knitr")
install.packages("kableExtra")
install.packages("dplyr")
install.packages("ggplot2")
install.packages("scales")
install.packages("ggrepel")
install.packages("tibble")


Para ler os pacotes, usamos a função library():

library(openxlsx)
library(knitr)
library(kableExtra)
library(dplyr)
library(ggplot2)
library(scales)
library(ggrepel)
library(tibble)


4. Base de dados

4.1. MIP 2015

A Matriz de Insumo-Produto (MIP) 2015 do Brasil disponibilizada pelo Instituto Brasileiro de Geografia e Estatística (IBGE) considera 67 atividades produtivas (setores). A MIP proporciona uma visão detalhada e sistêmica da estrutura produtiva brasileira e permite avaliar o grau de interdependência setorial da economia e os impactos de variações na demanda final dos produtos, mediante a identificação dos diversos fluxos de produção de bens e serviços.

As principais informações sobre o Sistema de Contas Nacionais (SCN) e da Matriz de Insumo-Produto (MIP) 2015 podem ser obtidas em www.ibge.gov.br.

Para fins de simplificação, vamos utilizar uma versão mais agregada da MIP 2015 com abertura para 12 atividades produtivas (setores). Os cálculos podem ser facilmente replicados com outras matrizes de insumo-produto, inclusive com a MIP brasileira com 67 atividades produtivas.


‣ Faça o download da Matriz de Insumo-Produto (MIP) 2015 com 12 atividades produtivas (setores) AQUI.

ATENÇÃO! Após fazer o download, salve o arquivo XLSX na sua pasta “setada”.


ATENÇÃO! Os resultados apresentados nas próximas seções devem ser avaliados com parcimônia visto que foram gerados com uma MIP bastante agregada. Para uma análise mais detalhada e sistêmica da estrutura produtiva brasileira, sugerimos que os cálculos sejam replicados com a MIP com 67 atividades produtivas (setores), disponível em www.ibge.gov.br.


4.2. Importando os dados

Existem diversos pacotes no R para ler os dados XLS e XLSX, como o readxl, o xlsx e o openxls.

Vamos usar o openxls. Faça sua leitura com a função library():

library(openxlsx)


Para importar os dados para o R com o pacote openxls, podemos usar a função read.xlsx.


Observação: Para tirar suas dúvidas sobre o pacote openxls e a função read.xlsx, utilize o help do R. Digite os seguintes comandos no Console:

?openxlsx
?read.xlsx


Os dados em Excel (.xlsx) podem ser lidos com os comandos abaixo. Observem que os nomes das abas (“sheet”) estão em conformidade com o arquivo disponibilizado na seção anterior.

#Consumo Intermediário (CI): 
Z = read.xlsx("MIP2015_12s.xlsx", sheet = "Z", colNames = FALSE)

#Demanda Final (DF):
y = read.xlsx("MIP2015_12s.xlsx", sheet = "y", colNames = FALSE)

#Valor Bruto da Produção (VBP):
x = read.xlsx("MIP2015_12s.xlsx", sheet = "x", colNames = FALSE)

#Valor Adicionado (VA):
v = read.xlsx("MIP2015_12s.xlsx", sheet = "v", colNames = FALSE)

#Remunerações:
r = read.xlsx("MIP2015_12s.xlsx", sheet = "r", colNames = FALSE)

#Pessoal Ocupado (PO):
e = read.xlsx("MIP2015_12s.xlsx", sheet = "e", colNames = FALSE)

#Consumo das Famílias (C):
c = read.xlsx("MIP2015_12s.xlsx", sheet = "c", colNames = FALSE)

#Setores
Setores = read.xlsx("MIP2015_12s.xlsx", sheet = "set", colNames = FALSE)

Observe que os dados estarão disponíveis como objetos no Environment do RStudio.


Você pode verificar a classe dos objetos com a função class(). Podemos, por exemplo, ver a classe do objeto \(\mathbf{Z}\) com o seguinte comando:

class(Z)
## [1] "data.frame"

Observe que nesse caso a classe do objeto será “data.frame”. Ou seja, uma tabela de dados.


Para realizar as operações das próximas seções, devemos transformar os dados em matrizes ou em vetores numéricos. Para tal, utilize as funções data.matrix() e as.vector():

Z = data.matrix(Z) #Consumo intermediário
y = data.matrix(y) #Demanda final
x = data.matrix(x) #Valor Bruto da Produção
x = as.vector(x)   #Valor Bruto da Produção
v = data.matrix(v) #Valor adicionado
r = data.matrix(r) #Remunerações
e = data.matrix(e) #Pessoal ocupado
c = data.matrix(c) #Consumo das famílias


Confira novamente a classe do objeto \(\mathbf{Z}\):

class(Z)
## [1] "matrix"


Feito isso, os objetos (matrizes e vetores) necessários para realizar a análise de insumo-produto estarão disponíveis no Environment do seu RStudio.

Salve a base dados no formato RData para uso futuro:

save(Z, y, x, v, r, e, c, file = "MIP2015_12s.RData")

Observação: O formato RData mantém a classe e a estrutura dos objetos. Portanto, é um formato interessante para armazenar os dados já tratados. Faça o teste!

Para ler os dados depois, utilize:

load("MIP2015_12s.RData")


5. Insumo-Produto

5.1. Modelo aberto

Suponha uma economia dividida em \(n\) setores, tal que a produção total (demanda total) do setor \(i\) (\(x_{i}\)) seja dada por:

\[x_{i} \equiv z_{i1} + z_{i2} + \cdots + z_{ij} + \cdots + z_{in} + y_{i}~~~~~~~~(1)\]

em que \(z_{ij}\) (\(\forall \: i,j = 1, 2,\cdots, n\)) representa as vendas interindustriais do setor \(i\) para todos os setores \(j\); e \(y_{i}\) as vendas do setor \(i\) para os agentes da demanda final.

Reescrevendo a equação (1), temos:

\[x_{i} \equiv \sum_{j=1}^{n}z_{ij} + y_{i}~~~~~~~~(2)\]

Assumindo que cada um dos setores produz bens e serviços segundo uma “receita” fixa (setores usam insumos em proporções fixas), temos:

\[a_{ij} = \frac{z_{ij}}{x_{j}} \quad \forall \: i,j = 1, 2,\cdots, n~~~~~~~~(3)\]

sendo \(a_{ij}\) conhecido como a razão de insumo-produto ou coeficiente técnico (coeficiente direto de insumos) que indica a quantidade monetária de insumo do setor \(i\) necessária para a produção de uma unidade monetária de produto final do setor \(j\).

Utilizando os coeficientes técnicos, equação (3), podemos reescrever a equação (2) como:

\[x_{i} \equiv \sum_{j=1}^{n}a_{ij}x_{j} + y_{i} \quad \forall \: i,j = 1, 2,\cdots, n~~~~~~~~(4)\]

Ou em termos matriciais:

\[\mathbf{x} = \mathbf{Ax} + \mathbf{y}~~~~~~~~(5)\]

em que \(\mathbf{x}\) é o vetor com a produção total dos \(n\) setores; \(\mathbf{A}\) a matriz de coeficientes técnicos; e \(\mathbf{y}\) o vetor com a demanda final por produtos dos \(n\) setores.

Dessa maneira, a partir de manipulações algébricas com a equação (5), podemos obter a equação básica de equilíbrio do modelo aberto de insumo-produto:

\[\mathbf{x} = (\mathbf{I} - \mathbf{A})^{-1} \mathbf{y}~~~~~~~~(6)\] \[\mathbf{x} = \mathbf{B} \mathbf{y}~~~~~~~~(7)\] em que \(\mathbf{B} =(\mathbf{I} - \mathbf{A})^{-1}\) é conhecida como a matriz inversa de Leontief ou matriz de coeficientes diretos e indiretos (requerimentos totais).

A equação (7) pode ser interpretada como a produção total (\(\mathbf{x}\)) necessária para satisfazer a demanda final (\(\mathbf{y}\)) dada a tecnologia de produção - matriz inversa de Leontief (\(\mathbf{B}\)).


ATENÇÃO! A matriz \(\mathbf{A}\) mostra o requisitos diretos de insumos e a matriz \(\mathbf{B}\) mostra o requisitos totais (requisitos diretos e indiretos) de insumos.


Modelo aberto de insumo-produto


Considerando a base de dados especificada na Seção 4, podemos calcular a matriz \(\mathbf{A}\) com os coeficientes técnicos (\(a_{ij}\)) da seguinte maneira:

A = Z %*% diag(1 / x)

ATENÇÃO! Multiplicação de matrizes e vetores no R são feitas com o operador %*%. O uso de * irá gerar um resultado diferente visto que o R faz o produto dos elementos nesse caso.


Para ver a matriz de coeficientes técnicos (\(\mathbf{A}\)) utilize a função View():

View(A)


Para encontrar a inversa de Leontief (\(\mathbf{B}\)), devemos criar primeiro uma matriz identidade (\(\mathbf{I}\)) de tamanho \(n \times n\). Para tal, podemos definir \(n\) como o tamanho do vetor \(\mathbf{x}\) com a função length() e depois criar a matriz identidade com a função diag():

n = length(x)
I = diag(n)

Repare que, nesse caso, \(n\) será igual a \(12\) (número de setores na MIP) e \(\mathbf{I}\) será uma matriz identidade \(12 \times 12\).

Para ver a matriz identidade (\(\mathbf{I}\)), utilize a função View():

View(I)


Considerando as matrizes \(\mathbf{I}\) e \(\mathbf{A}\), a matriz inversa de Leontief (\(\mathbf{B}\)) pode ser calculada com auxílio da função solve() (retorna a matriz inversa):

B = solve(I - A)

Para ver a matriz inversa de Leontief (\(\mathbf{B}\)), utilize a função View():

View(B)


Interpretação:

Para ver o primeiro elemento da primeira coluna da matriz \(\mathbf{A}\), utilize a seguinte indexação:

A[1, 1]
##          1 
## 0.04053431

Esse valor indica que o Setor 1 (Agro) requer diretamente R$0.0405 de insumos do próprio setor para produzir R$1.00 de produto final.


Para ver o segundo elemento da primeira coluna da matriz \(\mathbf{A}\), utilize a seguinte indexação:

A[2, 1]
##           2 
## 0.001102888

Esse valor, por sua vez, indica que o Setor 1 (Agro) requer diretamente R$0.0011 de insumos do Setor 2 (Ind.Extr) para produzir R$1.00 de produto final.


Similarmente, para ver o primeiro elemento da primeira coluna da matriz \(\mathbf{B}\), utilize a seguinte indexação:

B[1, 1]
##        1 
## 1.070423

Nesse caso, temos que, para atender um aumento de demanda de R$1,00 por produtos do Setor 1 (Agro), deverá ser produzido mais R$1.0704 de produto do setor, sendo R$1,00 o efeito inicial e R$0.0704 o produto adicional requerido pelo fato do setor ser usado como insumo para produzir outros produtos no sistema produtivo.


Para ver o segundo elemento da primeira coluna da matriz \(\mathbf{B}\), utilize a seguinte indexação:

B[2, 1]
##          1 
## 0.01711798

Esse valor, por sua vez, significa que para atender um aumento de demanda de R$1,00 por produtos do Setor 1 (Agro), deverá ser produzido mais R$0.0171 de produto do Setor 2 (Ind.Extr).


Observação: A interpretação para os demais setores da matriz de insumo-produto é análoga. Uma análise mais detalhada será apresentada na Seção de Multiplicadores.


5.2. Modelo fechado

No processo de produção, as famílias recebem renda como forma de pagamento pelo seu trabalho e, como consumidores, gastam seus rendimentos de forma relativamente padronizada segundo sua cesta de consumo.

O modelo aberto de Leontief (modelo aberto de insumo-produto) apresentado acima capta somente os impactos diretos e indiretos ligados às relações técnicas intersetoriais de compra e venda de insumos. Para capturar os efeitos induzidos pela geração de renda e consumo, é preciso “fechar” o modelo em relação às famílias. Em outras palavras, é preciso tornar o consumo das famílias endógeno no modelo.

Isso é feito modificando-se a formulação básica do modelo tal que:

  • o consumo das famílias é movido da coluna da demanda final para a última coluna da tabela de transações interindustriais do sistema de insumo-produto; e
  • a remuneração do trabalho (renda) é movida para a última linha da tabela de transações interindustriais do sistema de insumo-produto.

Essas alterações resultam no modelo fechado de insumo produto, representado por:

\[\left[\begin{array} {c} \mathbf{x} \\ x_{n+1} \\ \end{array} \right] = \left[\begin{array} {cc} \mathbf{A} & \mathbf{h_{c}} \\ \mathbf{h_{r}} & 0 \\ \end{array} \right] \left[\begin{array} {c} \mathbf{x} \\ x_{n+1} \\ \end{array} \right] + \left[\begin{array} {c} \mathbf{y} \\ y_{n+1} \\ \end{array} \right]~~~~~~~~(8)\]

em que \(\mathbf{h_{c}}\) é um vetor coluna representando os coeficientes de consumo; e \(\mathbf{h_{r}}\) um vetor linha representando os coeficientes de remuneração do trabalho (renda).

Os coeficientes de remuneração do trabalho (renda) (\(c_{j}^{r}\)) são dados por:

\[c_{j}^{r} = \frac{v_{j}^{r}}{x_{j}} \quad \forall \: j = 1, 2,\cdots, n~~~~~~~~(9)\]

em que \(v_{j}^{r}\) corresponde a remuneração do trabalho (renda) no setor \(j\); e \({x_{j}}\) o produto do setor \(j\).

Os coeficientes de consumo (\(c_{i}^{c}\)), por sua vez, são dados por:

\[c_{i}^{c} = \frac{v_{i}^{c}}{\sum_{j=1}^{n} v_{j}^{r}} \quad \forall \: i,j = 1, 2,\cdots, n~~~~~~~~(10)\]

em que \(v_{i}^{c}\) corresponde ao consumo das famílias dos produtos do setor \(i\); e \(\sum_{j=1}^{n} v_{j}^{r}\) a remuneração do trabalho (renda) associada aos \(n\) setores produtivos.

Dessa maneira, assumindo que

\[\left[\begin{array} {c} \mathbf{x} \\ x_{n+1} \\ \end{array} \right] = \mathbf{\bar{x}} \qquad \left[\begin{array} {cc} \mathbf{A} & \mathbf{h_{c}} \\ \mathbf{h_{r}} & 0 \\ \end{array} \right] = \mathbf{\bar{A}} \qquad \left[\begin{array} {c} \mathbf{y} \\ y_{n+1} \\ \end{array} \right] = \mathbf{\bar{y}}~~~~~~~~(11)\]

podemos reescrever a equação básica do modelo de insumo-produto como:

\[\mathbf{\bar{x}} = (\mathbf{I} - \mathbf{\bar{A}})^{-1} \mathbf{\bar{y}}~~~~~~~~(12)\]

\[\mathbf{\bar{x}} = \mathbf{\bar{B}} \mathbf{\bar{y}}~~~~~~~~(13)\]

em que \(\mathbf{\bar{B}}=(\mathbf{I} - \mathbf{\bar{A}})^{-1}\) é conhecida como a matriz inversa de Leontief do modelo fechado de insumo-produto.

Nesse caso, a matriz \(\mathbf{\bar{B}}\) mostra o requisitos totais (requisitos diretos e indiretos) e os induzidos. Assim, os coeficientes da matriz \(\mathbf{\bar{B}}\) serão maiores do que aqueles calculados no modelo aberto de Leontief (modelo aberto de insumo-produto). As diferenças entre os coeficientes das matrizes inversas de Leontief dos dois modelos representam o impacto induzido sobre a produção setorial decorrente da expansão do consumo das famílias.


Modelo fechado de insumo-produto


Considerando a base de dados especificada na Seção 4, inicialmente calculamos os coeficientes de consumo (\(c_{i}^{c}\)) e de remuneração do trabalho (renda) (\(c_{j}^{r}\)).

O vetor \(\mathbf{h_{c}}\) com os coeficientes de consumo (\(c_{i}^{c}\)) pode ser determinado com:

hc = c / sum(r)


O vetor \(\mathbf{h_{r}}\) com os coeficientes de remuneração do trabalho (renda) (\(c_{j}^{r}\)) pode ser determinado com:

hr = r / x

Lembre-se que o vetor \(\mathbf{h_{r}}\) deve ser um vetor linha. Utilize a função t() para transpor o vetor \(\mathbf{h_{r}}\):

hr = t(hr)


Após determinar os vetores, podemos construir a matriz \(\mathbf{\bar{A}}\) (especificada como AF). Para tal, primeiro definimos uma matriz \(n+1 \times n+1\) para receber as informações necessárias:

AF = matrix(NA, ncol = n + 1, nrow = n + 1)

Observe que nesse caso a matriz AF será uma matriz \(13 \times 13\) e estará preenchida com “NA” (sem valor).


Conforme equação (11), devemos preencher a matriz \(\mathbf{\bar{A}}\) (ou AF) da seguinte forma:

\[\left[\begin{array} {cc} \mathbf{A} & \mathbf{h_{c}} \\ \mathbf{h_{r}} & 0 \\ \end{array} \right] = \mathbf{\bar{A}}\]


Para tal, podemos usar as funções rbind() e cbind():

AF = rbind(cbind(A, hc), cbind(hr, 0))


Nesse caso, a função cbind(A,hc) junta a matriz \(\mathbf{A}\) e o vetor coluna \(\mathbf{h_{c}}\); e a função cbind(hr,0) junta o vetor linha \(\mathbf{h_{r}}\) e o escalar 0. Por fim, a função rbind() junta esses dois resultados, formando a matriz \(\mathbf{\bar{A}}\) (ou AF).


Observação: Para tirar dúvidas sobre as duas funções, utilize o help do R:

?cbind
?rbind


Para ver a matriz de coeficientes técnicos do modelo fechado de insumo-produto (\(\mathbf{\bar{A}}\) ou AF) utilize a função View():

View(AF)


Para encontrar a inversa de Leontief do modelo fechado de insumo-produto, devemos criar primeiro uma matriz identidade com uma coluna e uma linha a mais (ou seja, uma matriz \(n+1 \times n+1\)):

IF = diag(n + 1)

Para ver a matriz identidade (IF) utilize a função View():

View(IF)


Considerando as matrizes IF e \(\mathbf{\bar{A}}\) (ou AF), a matriz inversa de Leontief (\(\mathbf{\bar{B}}\) ou BF) do modelo fechado de insumo-produto pode ser calculada com auxílio da função solve():

BF = solve(IF - AF)

Para ver a matriz inversa de Leontief do modelo fechado (\(\mathbf{\bar{B}}\)) utilize a função View():

View(BF)


Interpretação:

Para ver o primeiro elemento da primeira coluna da matriz \(\mathbf{\bar{B}}\) (ou BF), utilize a seguinte indexação:

BF[1, 1]
## [1] 1.106383

Repare que o valor é maior que o observado com a matriz \(\mathbf{B}\). Nesse caso, a matriz incorpora o impacto induzido sobre a produção setorial.


Observação: A decomposição detalhada dos efeitos será abordada na Seção de Multiplicadores.


5.3. Modelo pelo lado da oferta

Uma alternativa ao modelo de insumo-produto pelo lado da demanda, apresentado nas duas seções anteriores, é o modelo pelo lado da oferta proposto por Ghosh.

Para encontrar a equação de equilíbrio do modelo pelo lado da oferta, calcula-se os elementos da matriz de coeficientes técnicos de insumo-produto pelo lado da oferta (\(\mathbf{F}\)) como:

\[f_{ij} = \frac{z_{ij}}{x_{i}} \quad \forall \: i,j = 1, 2,\cdots, n~~~~~~~~(14)\]


ATENÇÃO! Em vez de dividir cada \(z_{ij}\) (consumo intermediário) pelo Valor Bruto da Produção (VBP) do setor associado a coluna (\(x_{j}\)) (método tradicional e mais conhecido na literatura), divide-se cada \(z_{ij}\) pelo VBP (Demanda Total) do setor associado a linha (\(x_{i}\)).


Dessa maneira, a partir de manipulações algébricas, podemos obter a equação básica de equilíbrio do modelo de insumo-produto pelo lado da oferta como:

\[\mathbf{x'} = \mathbf{v}(\mathbf{I} - \mathbf{F})^{-1}~~~~~~~~(15)\]

\[\mathbf{x'} = \mathbf{v}\mathbf{G}~~~~~~~~(16)\]

em que \(\mathbf{x'}\) é o vetor linha com a produção total dos \(n\) setores; \(\mathbf{I}\) é a matriz identidade \(n \times n\); \(\mathbf{v}\) o vetor de setor de pagamentos; \(\mathbf{F}\) a matriz de coeficientes técnicos pelo lado da oferta; e \((\mathbf{I} - \mathbf{F})^{-1} = \mathbf{G}\) a matriz inversa de Ghosh.


Observação: Para encontrar o equilíbrio, considera-se no setor de pagamentos o valor adicionado, as importações e impostos indiretos.


Modelo de insumo-produto pelo lado da oferta


Considerando a base de dados especificada na Seção 4, podemos calcular a matriz \(\mathbf{F}\) com os coeficientes técnicos pelo lado da oferta (\(f_{ij}\)) da seguinte maneira:

F = diag(1 / x) %*% Z

Para ver a matriz de coeficientes técnicos (\(\mathbf{F}\)), utilize a função View():

View(F)


Para encontrar a inversa de Ghosh (\(\mathbf{G}\)), utilize a matriz identidade (\(\mathbf{I}\)) de tamanho \(n \times n\) criada anteriormente e a matriz de coeficientes técnicos pelo lado da oferta (\(\mathbf{F}\)):

G = solve(I - F)

Para ver a matriz inversa de Ghosh (\(\mathbf{G}\)), utilize a função View():

View(G)


6. Multiplicadores

6.1. Produção

Considerando o modelo aberto de insumo-produto descrito anteriormente, podemos definir o Multiplicador Simples de Produção do setor j (\(m(o)_{j}\)) como:

\[m(o)_{j} = \sum_{i=1}^{n}b_{ij}~~~~~~~~(17)\]

em que \(b_{ij}\) são os elementos da matriz inversa de Leontief (\(\mathbf{B}\)).


O Multiplicador Total de Produção do setor j (\(m(\bar{o})_{j}\)), por sua vez, é calculado com o modelo fechado de insumo-produto:

\[m(\bar{o})_{j} = \sum_{i=1}^{n+1}\bar{b}_{ij}~~~~~~~~(18)\]

em que \(\bar{b}_{ij}\) são os elementos da matriz inversa de Leontief do modelo fechado (\(\mathbf{\bar{B}}\)).


O Multiplicador Total de Produção Truncado do setor j (\(m[\bar{o}(t)]_{j}\)) também pode ser calculado considerado o modelo fechado de insumo-produto:

\[m[\bar{o}(t)]_{j} = \sum_{i=1}^{n}\bar{b}_{ij}~~~~~~~~(19)\]

em que \(\bar{b}_{ij}\) são os \(n \times n\) elementos da matriz inversa de Leontief do modelo fechado (\(\mathbf{\bar{B}}\)). Ou seja, considera-se apenas os \(n\) setores produtivos.


Com base nos modelos de insumo-produto descritos na seção anterior, podemos decompor o Multiplicador Total de Produção da seguinte maneira:

Efeito Mensuração
Efeito Total no modelo fechado (Efeito Direto + Indireto + Induzido) \(\sum_{i=1}^{n+1}\bar{b}_{ij}\)
Efeito Total no modelo aberto (Efeito Direto + Indireto) \(\sum_{i=1}^{n}b_{ij}\)
Efeito Induzido \(\sum_{i=1}^{n+1}\bar{b}_{ij} - \sum_{i=1}^{n}b_{ij}\)
Efeito Direto \(\sum_{i=1}^{n}a_{ij}\)
Efeito Indireto \(\sum_{i=1}^{n}b_{ij} - \sum_{i=1}^{n}a_{ij}\)
Fonte: Adaptação de Miller e Blair (2009).


E o Multiplicador Total de Produção Truncado como:

Efeito Mensuração
Efeito Total Truncado no modelo fechado (Efeito Direto + Indireto + Induzido) \(\sum_{i=1}^{n}\bar{b}_{ij}\)
Efeito Total no modelo aberto (Efeito Direto + Indireto) \(\sum_{i=1}^{n}b_{ij}\)
Efeito Induzido (apenas os \(n\) setores produtivos) \(\sum_{i=1}^{n}\bar{b}_{ij} - \sum_{i=1}^{n}b_{ij}\)
Efeito Direto \(\sum_{i=1}^{n}a_{ij}\)
Efeito Indireto \(\sum_{i=1}^{n}b_{ij} - \sum_{i=1}^{n}a_{ij}\)
Fonte: Adaptação de Miller e Blair (2009).

Multiplicadores de Produção


Os Multiplicadores Simples de Produção podem ser calculados com a função colSums():

MP = colSums(B)

Para ver os multiplicadores, utilize a função View():

View(MP)


Os Multiplicadores Totais de Produção podem ser calculados com a função colSums() e a seguinte indexação:

MPT = colSums(BF[, 1:n])

Observe que no cálculo consideramos apenas as \(n\) primeiras colunas. Ou seja, calcula-se os multiplicadores para os \(n\) setores produtivos (1:\(n\)) da MIP. Para ver tais multiplicadores, utilize a função View():

View(MPT)


Os Multiplicadores Totais de Produção Truncados, por sua vez, podem ser calculados com a função colSums() e a seguinte indexação:

MPTT = colSums(BF[1:n, 1:n])

Ou seja, conforme destacado acima, consideramos apenas os \(n \times n\) elementos da matriz inversa de Leontief do modelo fechado (\(\mathbf{\bar{B}}\) ou BF). Para ver os multiplicadores, utilize a função View():

View(MPTT)


Para juntar os multiplicadores em uma única tabela de dados (data frame), utilize a função cbind(). Além disso, transforme o objeto em data frame com a função as.data.frame() e determine o nome das colunas com a função colnames():

MultProd= cbind(Setores, MP, MPT, MPTT)
MultProd = as.data.frame(MultProd)
colnames(MultProd) = c("Setores", "MP", "MPT", "MPTT")


Caso os dados estejam armazenados como fatores, transforme-os primeiro em “character” com a função as.character() e depois em “numeric” com a função as.numeric():

MultProd$MP = as.numeric(as.character(MultProd$MP))
MultProd$MPT = as.numeric(as.character(MultProd$MPT))
MultProd$MPTT = as.numeric(as.character(MultProd$MPTT))


Para ver a tabela de dados, utilize a função View() ou simplesmente digite “MultProd” no Console do RStudio:

MultProd
##      Setores       MP      MPT     MPTT
## 1       Agro 1.719044 2.959997 2.543951
## 2   Ind.Extr 1.771649 3.328518 2.806557
## 3   Ind.Tran 2.147529 4.051231 3.412990
## 4       SIUP 1.947655 3.344608 2.876261
## 5       Cons 1.811262 3.693084 3.062178
## 6        Com 1.532739 3.780823 3.027123
## 7     Transp 1.840288 4.143630 3.371404
## 8       Info 1.640565 3.708278 3.015050
## 9      Finan 1.492315 3.463977 2.802952
## 10      Imob 1.110196 1.309140 1.242441
## 11 Otrs.Serv 1.533751 4.052431 3.208010
## 12       Adm 1.383516 5.306243 3.991097


Para gerar uma tabela organizada, podemos usar os pacotes knitr, kableExtra e dplyr. Faça a leitura dos pacotes com:

library(knitr)
library(kableExtra)
library(dplyr)


A tabela pode ser gerada com a função kable() do pacote knitr. Extras de formatação podem ser adicionados com a função kable_styling() do pacote kableExtra e com auxílio do operador pipe do pacote dplyr.


Observação: O pipe, ou como usado no código %>%, é um operador do pacote dplyr utilizado para facilitar a execução dos comandos. Basicamente, ele usa o valor resultante da expressão anterior (lado esquerdo) como primeiro argumento da função do lado direito.


kable(MultProd, caption = "Multiplicadores de Produção", align = "lccc") %>%
   kable_styling(bootstrap_options = "striped", full_width = FALSE) %>% 
   footnote(general = "Elaboração própria com dados da MIP do IBGE (2015).",
           general_title = "Fonte:",
           footnote_as_chunk = TRUE, title_format = c("bold"))
Multiplicadores de Produção
Setores MP MPT MPTT
Agro 1.719044 2.959997 2.543951
Ind.Extr 1.771649 3.328518 2.806557
Ind.Tran 2.147530 4.051231 3.412990
SIUP 1.947655 3.344608 2.876261
Cons 1.811262 3.693084 3.062178
Com 1.532739 3.780823 3.027123
Transp 1.840288 4.143630 3.371404
Info 1.640565 3.708278 3.015050
Finan 1.492315 3.463977 2.802952
Imob 1.110196 1.309140 1.242441
Otrs.Serv 1.533751 4.052431 3.208010
Adm 1.383516 5.306243 3.991097
Fonte: Elaboração própria com dados da MIP do IBGE (2015).

Interpretação

Os Multiplicadores de Produção do Setor 1 (Agro), por exemplo, podem ser interpretados como:

  • Multiplicador Simples de Produção (MP): uma variação de demanda de R$1,00 no Setor 1 (Agro) gera R$1.7190 de produto na economia.
  • Multiplicador Total de Produção (MPT): uma variação de demanda de R$1,00 no Setor 1 (Agro) gera R$2.9600 de produto na economia, incluindo o efeito induzido.
  • Multiplicador Total de Produção Truncado (MPTT): uma variação de demanda de R$1,00 no Setor 1 (Agro) gera R$2.5440 de produto na economia, incluindo o efeito induzido (apenas nos \(n\) setores produtivos).


Considerando a decomposição do Multiplicador Total de Produção do Setor 1 (Agro), temos:

Efeito Mensuração
Efeito Total no modelo fechado (Efeito Direto + Indireto + Induzido) 2.9600
Efeito Total no modelo aberto (Efeito Direto + Indireto) 1.7190
Efeito Induzido 1.2410
Efeito Direto 0.3713
Efeito Indireto 1.3478
Fonte: Elaboração própria com dados da MIP do IBGE (2015).


Considerando a decomposição do Multiplicador Total de Produção Truncado do Setor 1 (Agro), temos:

Efeito Mensuração
Efeito Total no modelo fechado (Efeito Direto + Indireto + Induzido) 2.5440
Efeito Total no modelo aberto (Efeito Direto + Indireto) 1.7190
Efeito Induzido 0.8249
Efeito Direto 0.3713
Efeito Indireto 1.3478
Fonte: Elaboração própria com dados da MIP do IBGE (2015).

Observação: Para calcular as decomposições, as seguintes operações e indexações foram utilizadas:

#Multiplicador Total de Produção do Setor 1:
format(round(sum(BF[,1]), digits = 4), nsmall = 4) #Efeito Total no modelo fechado
format(round(sum(B[,1]), digits = 4), nsmall = 4) #Efeito Total no modelo aberto
format(round(sum(BF[,1]) - sum(B[,1]), digits = 4), nsmall = 4) #Efeito Induzido 
format(round(sum(A[,1]), digits = 4), nsmall = 4) #Efeito Direto 
format(round(sum(B[,1]) - sum(A[,1]), digits = 4), nsmall = 4) #Efeito Indireto

#Multiplicador Total de Produção Truncado do Setor 1:
format(round(sum(BF[1:n,1]), digits = 4), nsmall = 4) #Efeito Total no modelo fechado
format(round(sum(B[,1]), digits = 4), nsmall = 4) #Efeito Total no modelo aberto
format(round(sum(BF[1:n,1]) - sum(B[,1]), digits = 4), nsmall = 4) #Efeito Induzido
format(round(sum(A[,1]), digits = 4), nsmall = 4) #Efeito Direto
format(round(sum(B[,1]) - sum(A[,1]), digits = 4), nsmall = 4) #Efeito Indireto


A parte de visualização no R, por sua vez, pode ser explorada com o pacote ggplot2. Se você ainda não instalou o pacote, utilize o comando abaixo:

install.packages("ggplot2")


Além disso, instale também o pacote scales. Ele será útil para arrumar as escalas dos eixos:

install.packages("scales")


Após a instalação, faça a leitura dos dois pacotes:

library(ggplot2)
library(scales)


Podemos utilizar a tabela de dados MultProd para fazer gráficos com o pacote ggplot2:


Multiplicadores Simples de Produção

ggplot(MultProd, aes(x = factor(Setores, levels = unique(Setores)), y = MP)) +
  geom_col() +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab("Setores") +
  ylab(" ") +
  ggtitle("Multiplicadores Simples de Produção") +
  labs(subtitle = "2015",
  caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  geom_text(aes(label = round(MP, digits = 2)), vjust = -0.5, size = 3) +
  scale_y_continuous(labels = scales::number_format(accuracy = 0.01),
                     limits = c(0, 2.5),
                     breaks = seq(from = 0.0, to = 2.5, by = 0.5))


Multiplicadores Totais de Produção

ggplot(MultProd, aes(x = factor(Setores, levels = unique(Setores)), y = MPT)) +
  geom_col() +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab("Setores") +
  ylab(" ") +
  ggtitle("Multiplicadores Totais de Produção") +
  labs(subtitle = "2015") +
  labs(subtitle = "2015",
  caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  geom_text(aes(label = round(MPT, digits = 2)), vjust = -0.5, size = 3) +
  scale_y_continuous(labels = scales::number_format(accuracy = 0.01),
                     limits = c(0, 5.5),
                     breaks = seq(from = 0.0, to = 5.5, by = 0.5))


Multiplicadores Totais de Produção Truncados

ggplot(MultProd, aes(x = factor(Setores, levels = unique(Setores)), y = MPTT)) +
  geom_col() +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab("Setores") +
  ylab(" ") +
  ggtitle("Multiplicadores Totais de Produção Truncados") +
  labs(subtitle = "2015") +
  labs(subtitle = "2015",
  caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  geom_text(aes(label = round(MPTT, digits = 2)), vjust = -0.5, size = 3) +
  scale_y_continuous(labels = scales::number_format(accuracy = 0.01),
                     limits = c(0, 4.5),
                     breaks = seq(from = 0.0, to = 4.5, by = 0.5))


6.2. Emprego

Para calcular os multiplicadores de emprego devemos calcular primeiro os coeficientes de emprego (requisitos de emprego) para todos os setores do sistema de insumo-produto em questão.

Os requisitos de emprego (\(c_{j}^{e}\)) podem ser calculados com:

\[c_{j}^{e} = \frac{v_{j}^{e}}{x_{j}} \quad \forall \: j = 1, 2,\cdots, n~~~~~~~~(20)\]

em que \(v_{j}^{e}\) corresponde ao número de trabalhadores empregados (pessoal ocupado) no setor \(j\); e \(x_{j}\) o produto do setor \(j\).

Considerando os coeficientes de emprego para os \(n\) setores, temos:

\[\mathbf{e'} = \mathbf{\hat{C}^{e}} \mathbf{x}~~~~~~~~(21)\]

em que \(\mathbf{e'}\) é um vetor com os valores brutos do emprego; \(\mathbf{\hat{C}^{e}}\) uma matriz com os coeficientes de emprego na diagonal e zeros no restante; e \(\mathbf{x}\) o vetor de valor bruto da produção.

Considerando a equação de equilíbrio do modelo aberto de insumo-produto, \(\mathbf{x} = \mathbf{B} \mathbf{y}\), podemos reescrever a equação (21) como:

\[\mathbf{e'} = \mathbf{\hat{C}^{e}} \mathbf{By}~~~~~~~~(22)\]

em que \(\mathbf{B}\) é a matriz inversa de Leontief; e \(\mathbf{y}\) o vetor de demanda final.

A pré-multiplicação da matriz inversa de Leontief (\(\mathbf{B}\)) pela matriz de coeficientes de emprego (\(\mathbf{\hat{C}^{e}}\)) é conhecida como matriz geradora de empregos:

\[\mathbf{E} = \mathbf{\hat{C}^{e}} \mathbf{B}~~~~~~~~(23)\]

A matriz \(\mathbf{E}\) mostra a estrutura setorial de geração de emprego na economia por unidade adicional de demanda final. Portanto, a partir dela, podemos calcular o Multiplicador Simples de Emprego (ou Gerador de Emprego) do setor j (\(m(e)_{j}\)) como:

\[m(e)_{j} = \sum_{i=1}^{n}e_{ij}~~~~~~~~(24)\]

em que \(e_{ij}\) são os elementos da matriz geradora de empregos (\(\mathbf{E}\)).

Portanto, o Multiplicador Simples de Emprego (ou Gerador de Emprego) apresenta o impacto total (direto e indireto) dado uma unidade adicional de demanda final. Ou seja, mostra o quanto é gerado de emprego na economia dado uma variação de demanda de R$1,00 no setor.


Além dos multiplicadores simples, podemos calcular também os Multiplicadores de Emprego (Tipo I), os Multiplicadores Totais de Emprego (truncado) e os Multiplicadores de Emprego (Tipo II).


O Multiplicador de Emprego (Tipo I) é dado pela razão entre o Multiplicador Simples de Emprego do setor j (\(m(e)_{j}\)) e seu respectivo coeficiente de intensidade (\(c_{j}^{e}\)):

\[m^{I}(e)_{j} = \frac{m(e)_{j}}{c_{j}^{e}}~~~~~~~~(25)\]

O Multiplicador de Emprego (Tipo I) representa, portanto, o quanto é gerado, direta e indiretamente, de emprego para cada unidade diretamente gerada de emprego.


O Multiplicador Total de Emprego (truncado) é dado por:

\[m(\bar{e})_{j} = \sum_{i=1}^{n}\bar{e}_{ij}~~~~~~~~(26)\]

em que \(\bar{e}_{ij}\) são os elementos da matriz geradora de empregos (\(\mathbf{\bar{E}}\)) considerando o modelo fechado de insumo-produto. Ou seja, \(\mathbf{\bar{E}} = \mathbf{\hat{C}^{e}} \mathbf{\bar{B}^{*}}\), em que \(\mathbf{\bar{B}^{*}}\) nesse caso considerada apenas as relações entre os \(n\) setores produtivos da matriz \(\mathbf{\bar{B}}\) definida na equação (13).

O Multiplicador Total de Emprego (truncado) apresenta o impacto direto, indireto e induzido. Ou seja, incorpora o efeito induzido dado uma unidade adicional de demanda final.


O Multiplicador de Emprego (Tipo II) é dado pela razão entre o Multiplicador Total de Emprego (truncado) do setor j (\(m(\bar{e})_{j}\)) e seu respectivo coeficiente de intensidade (\(c_{j}^{e}\)):

\[m^{I}(e)_{j} = \frac{m(\bar{e})_{j}}{c_{j}^{e}}~~~~~~~~(27)\]

O Multiplicador de Emprego (Tipo II) incorpora o efeito induzido. Ou seja, representa o quanto é gerado de emprego, incluindo o efeito induzido, para cada unidade diretamente gerada de emprego.


Com isso, temos a seguinte decomposição do Multiplicador Total de Emprego:

Efeito Mensuração
Efeito Total no modelo fechado (Efeito Direto + Indireto + Induzido) \(\sum_{i=1}^{n}\bar{e}_{ij}\)
Efeito Total no modelo aberto (Efeito Direto + Indireto) \(\sum_{i=1}^{n}e_{ij}\)
Efeito Induzido \(\sum_{i=1}^{n}\bar{e}_{ij} - \sum_{i=1}^{n}e_{ij}\)
Efeito Direto \(c^{e}_{j}\)
Efeito Indireto \(\sum_{i=1}^{n}e_{ij} - c^{e}_{j}\)
Fonte: Adaptação de Miller e Blair (2009).


E a seguinte síntese do Multiplicador de Emprego:

Síntese
Mudança Exógena \(\Delta y_{j} = 1\)
Efeito Inicial (N) - setor j \(\Delta x_{j} = 1\) e \(\Delta c^{e}_{j}\)
Efeito Total (T) no modelo aberto (Efeito Direto + Indireto) \(\sum_{i=1}^{n}e_{ij}\)
Multiplicador Simples (T/N) no modelo aberto \(m(e)_{j} = \frac{\sum_{i=1}^{n}e_{ij}}{\Delta y_{j}}\)
Multiplicador (Tipo I) no modelo aberto \(m^{I}(e)_{j} = \frac{m(e)_{j}}{c_{j}^{e}}\)
Efeito Total (\(\bar{T}\)) no modelo fechado (Efeito Direto + Indireto + Induzido) \(\sum_{i=1}^{n}\bar{e}_{ij}\)
Multiplicador Total (T/N) no modelo fechado \(m(\bar{e})_{j} = \frac{\sum_{i=1}^{n}\bar{e}_{ij}}{\Delta y_{j}}\)
Multiplicador (Tipo II) no modelo fechado \(m^{II}(e)_{j} = \frac{m(\bar{e})_{j}}{c_{j}^{e}}\)
Fonte: Adaptação de Miller e Blair (2009).

Multiplicadores de Emprego


Os coeficientes de emprego (\(c_{j}^{e}\)) podem ser calculados com:

ce = e / x
ce = as.vector(ce)

ATENÇÃO! Nesse caso, visto que os dados na MIP estão em valores correntes em 1.000.000 R$, temos os requisitos de emprego por R$1.000.000.


A matriz com os coeficientes de emprego na diagonal e zeros no restante (\(\mathbf{\hat{C}^{e}}\)) pode ser construída com a função diag():

Cehat = diag(ce)  


Com isso, a matriz geradora de empregos (\(\mathbf{E}\)) pode ser calculada considerando a matriz de coeficientes de emprego (\(\mathbf{\hat{C}^{e}}\) ou Cehat) e a matriz inversa de Leontief (\(\mathbf{B}\)):

E = Cehat %*% B


Os Multiplicadores Simples de Emprego podem ser calculados com a função colSums():

ME = colSums(E)

Para ver os multiplicadores, utilize a função View():

View(ME)


Os Multiplicadores de Emprego (Tipo I) podem ser calculados com:

MEI = ME / ce

Para ver tais multiplicadores, utilize a função View():

View(MEI)


Para calcular os multiplicadores totais de emprego, temos, primeiro, que calcular a matriz geradora de empregos considerando o modelo fechado de insumo-produto (\(\mathbf{\bar{E}}\)):

EF = Cehat %*% BF[1:n, 1:n]

Observe que para o cálculo considera-se apenas as \(n\) colunas e \(n\) linhas da matriz (\(\mathbf{\bar{B}}\) (ou BF). Ou seja, considera-se apenas os \(n\) setores produtivos.


Com a matriz \(\mathbf{\bar{E}}\) (ou EF), podemos calcular os Multiplicadores Totais de Emprego (truncados) com a função colSums():

MET = colSums(EF)

Para ver tais multiplicadores, utilize a função View():

View(MET)


Os Multiplicadores de Emprego (Tipo II) podem ser calculados com:

MEII = MET / ce

Para ver tais multiplicadores, utilize a função View():

View(MEII)


Para juntar os multiplicadores de emprego em uma única tabela de dados (data frame), utilize a função cbind(). Além disso, transforme o objeto em data frame com a função as.data.frame() e determine o nome das colunas com a função colnames():

MultEmp = cbind(Setores, ME, MEI, MET, MEII)
MultEmp = as.data.frame(MultEmp)
colnames(MultEmp) = c("Setores", "ME", "MEI", "MET", "MEII")


Caso os dados estejam armazenados como fatores, transforme-os primeiro em “character” com a função as.character() e depois em “numeric” com a função as.numeric():

MultEmp$ME = as.numeric(as.character(MultEmp$ME))
MultEmp$MEI = as.numeric(as.character(MultEmp$MEI))
MultEmp$MET = as.numeric(as.character(MultEmp$MET))
MultEmp$MEII = as.numeric(as.character(MultEmp$MEII))


Para ver a tabela de dados, utilize a função View() ou simplesmente digite “MultEmp” no Console do RStudio:

MultEmp
##      Setores        ME      MEI       MET      MEII
## 1       Agro 34.101037 1.242638 42.169181  1.536640
## 2   Ind.Extr  8.451915 7.658824 18.574004 16.831101
## 3   Ind.Tran 15.374493 3.806716 27.751536  6.871265
## 4       SIUP  8.348028 3.987779 17.430413  8.326354
## 5       Cons 21.242773 1.554648 33.477565  2.450048
## 6        Com 22.473178 1.310717 37.089247  2.163178
## 7     Transp 17.071567 1.827595 32.046902  3.430779
## 8       Info 10.674351 2.771608 24.117726  6.262196
## 9      Finan  6.687006 3.202383 19.505899  9.341304
## 10      Imob  1.560459 2.042665  2.853904  3.735805
## 11 Otrs.Serv 26.034161 1.264451 42.409532  2.059785
## 12       Adm 13.211106 1.428829 38.714983  4.187166


Como realizado na seção anterior, uma tabela pode ser gerada com a função kable() do pacote knitr e extras de formatação podem ser feitos com a função kable_styling() do pacote kableExtra e auxílio do operador pipe %>% do pacote dplyr:

kable(MultEmp, caption = "Multiplicadores de Emprego", align = "lcccc") %>%
   kable_styling(bootstrap_options = "striped", full_width = FALSE) %>% 
   footnote(general = "Elaboração própria com dados da MIP do IBGE (2015).",
           general_title = "Fonte:",
           alphabet = "ME e MET por 1.000.000 R$.",
           alphabet_title = "Nota:",
           footnote_as_chunk = TRUE, title_format = c("bold"))
Multiplicadores de Emprego
Setores ME MEI MET MEII
Agro 34.101037 1.242638 42.169181 1.536640
Ind.Extr 8.451915 7.658824 18.574004 16.831101
Ind.Tran 15.374493 3.806716 27.751535 6.871265
SIUP 8.348028 3.987779 17.430413 8.326354
Cons 21.242773 1.554648 33.477565 2.450048
Com 22.473178 1.310717 37.089247 2.163178
Transp 17.071567 1.827595 32.046902 3.430779
Info 10.674351 2.771608 24.117726 6.262196
Finan 6.687006 3.202383 19.505899 9.341304
Imob 1.560459 2.042665 2.853904 3.735805
Otrs.Serv 26.034161 1.264451 42.409532 2.059785
Adm 13.211106 1.428829 38.714983 4.187166
Fonte: Elaboração própria com dados da MIP do IBGE (2015).
Nota: a ME e MET por 1.000.000 R$.


Interpretação

Os Multiplicadores de Emprego do Setor 1 (Agro), por exemplo, podem ser interpretados como:

  • Multiplicador Simples de Emprego (ME): uma variação de demanda de R$1.000.000 no Setor 1 (Agro) gera 34.101 empregos na economia.
  • Multiplicador de Emprego (Tipo I) (MEI): para cada emprego gerado diretamente no Setor 1 (Agro) tem-se um efeito multiplicador de 1.2426 na economia.
  • Multiplicador Total de Emprego Truncado (MET): uma variação de demanda de R$1.000.000 no Setor 1 (Agro) gera 42.1692 de empregos na economia, incluindo o efeito induzido (apenas nos \(n\) setores produtivos).
  • Multiplicador de Emprego (Tipo II) (MEII): para cada emprego gerado diretamente no Setor 1 (Agro) tem-se um efeito multiplicador de 1.5366 na economia, incluindo o efeito induzido (apenas nos \(n\) setores produtivos).


Conforme anteriormente, podemos utilizar a tabela de dados MultEmp para fazer alguns gráficos com o pacote ggplot2 (e auxílio do pacote scales):


Multiplicadores Simples de Emprego

ggplot(MultEmp, aes(x = factor(Setores, levels = unique(Setores)), y = ME)) +
  geom_col() +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab("Setores") +
  ylab(" ") +
  ggtitle("Multiplicadores Simples de Emprego") +
  labs(subtitle = "2015",
       caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).\nNota: Por 1.000.000 R$.") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  geom_text(aes(label = round(ME, digits = 2)), vjust = -0.5, size = 3) +
  scale_y_continuous(labels = scales::number_format(accuracy = 0.01), 
                     limits = c(0,35),
                     breaks = seq(from = 0.0, to = 35.0, by = 5))


Multiplicadores de Emprego (Tipo I)

ggplot(MultEmp, aes(x = factor(Setores, levels = unique(Setores)), y = MEI)) +
  geom_col() +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab("Setores") +
  ylab(" ") +
  ggtitle("Multiplicadores de Emprego (Tipo I)") +
  labs(subtitle = "2015") +
  labs(subtitle = "2015",
       caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  geom_text(aes(label = round(MEI, digits = 2)), vjust = -0.5, size = 3) +
  scale_y_continuous(labels = scales::number_format(accuracy = 0.01),
                     limits = c(0,8),
                     breaks = seq(from = 0.0, to = 8, by = 1))


Multiplicadores Totais de Emprego (truncados)

ggplot(MultEmp, aes(x = factor(Setores, levels = unique(Setores)), y = MET)) +
  geom_col() +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab("Setores") +
  ylab(" ") +
  ggtitle("Multiplicadores Totais de Emprego (truncados)") +
  labs(subtitle = "2015") +
  labs(subtitle = "2015",
       caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).\nNota: Por 1.000.000 R$.") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  geom_text(aes(label = round(MET, digits = 2)), vjust = -0.5, size = 3) +
  scale_y_continuous(labels = scales::number_format(accuracy = 0.01),
                     limits = c(0,45),
                     breaks = seq(from = 0, to = 45, by = 5))


Multiplicadores de Emprego (Tipo II)

ggplot(MultEmp, aes(x = factor(Setores, levels = unique(Setores)), y = MEII)) +
  geom_col() +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab("Setores") +
  ylab(" ") +
  ggtitle("Multiplicadores de Emprego (Tipo II)") +
  labs(subtitle = "2015") +
  labs(subtitle = "2015",
       caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  geom_text(aes(label = round(MEII, digits = 2)), vjust = -0.5, size = 3) +
  scale_y_continuous(labels = scales::number_format(accuracy = 0.01),
                     limits = c(0,20),
                     breaks = seq(from = 0, to = 20, by = 5))


6.3. Renda

Os cálculos dos multiplicadores de renda são similares aos apresentados na seção anterior. Calcula-se primeiro os coeficientes de renda (requisitos de renda) para todos os setores.

Os requisitos de renda (\(c_{j}^{r}\)) são dados por:

\[c_{j}^{r} = \frac{v_{j}^{r}}{x_{j}} \quad \forall \: j = 1, 2,\cdots, n~~~~~~~~(28)\]

em que \(v_{j}^{r}\) corresponde a remuneração do trabalho (renda) no setor \(j\); e \(x_{j}\) o produto do setor \(j\).

Considerando os coeficientes de renda para os \(n\) setores, temos:

\[\mathbf{r'} = \mathbf{\hat{C}^{r}} \mathbf{x}~~~~~~~~(29)\]

em que \(\mathbf{r'}\) é um vetor com os valores brutos da renda (remunerações do trabalho); \(\mathbf{\hat{C}^{r}}\) uma matriz com os coeficientes de renda na diagonal e zeros no restante; e \(\mathbf{x}\) o vetor de valor bruto da produção.

Considerando a equação de equilíbrio do modelo de insumo-produto, \(\mathbf{x} = \mathbf{B} \mathbf{y}\), podemos reescrever a equação (29) como:

\[\mathbf{r'} = \mathbf{\hat{C}^{r}} \mathbf{By}~~~~~~~~(30)\]

em que \(\mathbf{B}\) é a matriz inversa de Leontief; e \(\mathbf{y}\) o vetor de demanda final.

A pré-multiplicação da matriz inversa de Leontief (\(\mathbf{B}\)) pela matriz de coeficientes de renda (\(\mathbf{\hat{C}^{r}}\)) é conhecida como matriz geradora de renda:

\[\mathbf{R} = \mathbf{\hat{C}^{r}} \mathbf{B}~~~~~~~~(31)\]

Essa matriz \(\mathbf{R}\) mostra a estrutura setorial de geração de renda na economia por unidade adicional de demanda final. Portanto, a partir dela, podemos calcular o Multiplicador Simples de Renda (ou Gerador de Renda) do setor j (\(m(r)_{j}\)):

\[m(r)_{j} = \sum_{i=1}^{n}r_{ij}~~~~~~~~(32)\]

em que \(r_{ij}\) são os elementos da matriz geradora de renda (\(\mathbf{R}\)).

Portanto, o Multiplicador Simples de Renda (ou Gerador de Renda) apresenta o impacto total (direto e indireto) dado uma unidade adicional de demanda final. Ou seja, mostra o quanto é gerado de renda na economia dado uma variação de demanda de R$1,00 no setor.


Além dos multiplicadores simples, podemos calcular também os Multiplicadores de Renda (Tipo I), os Multiplicadores Totais de Renda (truncado) e os Multiplicadores de Renda (Tipo II).


O Multiplicador de Renda (Tipo I) é dado pela razão entre o Multiplicador Simples de Renda do setor j (\(m(r)_{j}\)) e seu respectivo coeficiente de intensidade - requisito de renda (\(c_{j}^{r}\)):

\[m^{I}(r)_{j} = \frac{m(r)_{j}}{c_{j}^{r}}~~~~~~~~(33)\]

O Multiplicador de Renda (Tipo I) representa, por sua vez, o quanto é gerado, direta e indiretamente, de renda para cada unidade diretamente gerada de renda.


O Multiplicador Total de Renda (truncado) é dado por:

\[m(\bar{r})_{j} = \sum_{i=1}^{n}\bar{r}_{ij}~~~~~~~~(34)\]

em que \(\bar{r}_{ij}\) são os elementos da matriz geradora de empregos (\(\mathbf{\bar{R}}\)) considerando o modelo fechado de insumo-produto. Ou seja, \(\mathbf{\bar{E}} = \mathbf{\hat{C}^{r}} \mathbf{\bar{B}^{*}}\), em que \(\mathbf{\bar{B}^{*}}\) nesse caso considerada apenas as relações entre os \(n\) setores produtivos da matriz \(\mathbf{\bar{B}}\) definida na equação (13).

O Multiplicador Total de Renda (truncado) apresenta, portanto, o impacto direto, indireto e induzido. Ou seja, incorpora o efeito induzido dado uma unidade adicional de demanda final.


O Multiplicador de Renda (Tipo II) é dado pela razão entre o Multiplicador Total de Renda (truncado) do setor j (\(m(\bar{r})_{j}\)) e seu respectivo coeficiente de intensidade - requisito de renda (\(c_{j}^{r}\)):

\[m^{I}(r)_{j} = \frac{m(\bar{r})_{j}}{c_{j}^{r}}~~~~~~~~(35)\]

Portanto, o Multiplicador de Renda (Tipo II) incorpora o efeito induzido. Ou seja, representa o quanto é gerado de renda, incluindo o efeito induzido, para cada unidade diretamente gerada de renda.


Com isso, temos a seguinte decomposição do Multiplicador Total de Renda:

Efeito Mensuração
Efeito Total no modelo fechado (Efeito Direto + Indireto + Induzido) \(\sum_{i=1}^{n}\bar{r}_{ij}\)
Efeito Total no modelo aberto (Efeito Direto + Indireto) \(\sum_{i=1}^{n}r_{ij}\)
Efeito Induzido \(\sum_{i=1}^{n}\bar{r}_{ij} - \sum_{i=1}^{n}r_{ij}\)
Efeito Direto \(c^{r}_{j}\)
Efeito Indireto \(\sum_{i=1}^{n}r_{ij} - c^{r}_{j}\)
Fonte: Adaptação de Miller e Blair (2009).


E a seguinte síntese do Multiplicador de Renda:

Síntese
Mudança Exógena \(\Delta y_{j} = 1\)
Efeito Inicial (N) - setor j \(\Delta x_{j} = 1\) e \(\Delta c^{r}_{j}\)
Efeito Total (T) no modelo aberto (Efeito Direto + Indireto) \(\sum_{i=1}^{n}r_{ij}\)
Multiplicador Simples (T/N) no modelo aberto \(m(r)_{j} = \frac{\sum_{i=1}^{n}r_{ij}}{\Delta y_{j}}\)
Multiplicador (Tipo I) no modelo aberto \(m^{I}(r)_{j} = \frac{m(r)_{j}}{c_{j}^{r}}\)
Efeito Total (\(\bar{T}\)) no modelo fechado (Efeito Direto + Indireto + Induzido) \(\sum_{i=1}^{n}\bar{r}_{ij}\)
Multiplicador Total (T/N) no modelo fechado \(m(\bar{r})_{j} = \frac{\sum_{i=1}^{n}\bar{r}_{ij}}{\Delta y_{j}}\)
Multiplicador (Tipo II) no modelo fechado \(m^{II}(r)_{j} = \frac{m(\bar{r})_{j}}{c_{j}^{r}}\)
Fonte: Adaptação de Miller e Blair (2009).

Multiplicadores de Renda


Os coeficientes de renda (\(c_{j}^{r}\)) podem ser calculados com:

cr = r / x
cr = as.vector(cr)

A matriz com os coeficientes de renda na diagonal e zeros no restante (\(\mathbf{\hat{C}^{r}}\)) pode ser construída com a função diag():

Crhat = diag(cr)  


Com isso, a matriz geradora de renda (\(\mathbf{R}\)) pode ser calculada considerando a matriz de coeficientes de renda (\(\mathbf{\hat{C}^{r}}\)) e a matriz inversa de Leontief (\(\mathbf{B}\)):

R = Crhat %*% B


Os Multiplicadores Simples de Renda podem ser calculados com a função colSums():

MR = colSums(R)

Para ver os multiplicadores, utilize a função View():

View(MR)


Os Multiplicadores de Renda (Tipo I) podem ser calculados com:

MRI = MR / cr

Para ver tais multiplicadores, utilize a função View():

View(MRI)


Para calcular os multiplicadores totais de renda, temos, primeiro, que calcular a matriz geradora de renda considerando o modelo fechado de insumo-produto (\(\mathbf{\bar{R}}\)):

RF = Crhat %*% BF[1:n, 1:n]

Observe que para o cálculo considera-se apenas as \(n\) colunas e \(n\) linhas da matriz (\(\mathbf{\bar{B}}\) ou BF). Ou seja, apenas os \(n\) setores produtivos.


Com a matriz \(\mathbf{\bar{R}}\) (ou RF), podemos calcular os Multiplicadores Totais de Renda (truncados) com:

MRT = colSums(RF)

Para ver tais multiplicadores, utilize a função View():

View(MRT)


Os Multiplicadores de Renda (Tipo II) podem ser calculados com:

MRII = MRT / cr

Para ver tais multiplicadores, utilize a função View():

View(MRII)


Para juntar os multiplicadores de emprego em uma única tabela de dados (data frame), utilize a função cbind(). Além disso, transforme o objeto em data frame com a função as.data.frame() e determine o nome das colunas com a função colnames():

MultRen = cbind(Setores, MR, MRI, MRT, MRII)
MultRen = as.data.frame(MultRen)
colnames(MultRen) = c("Setores", "MR", "MRI", "MRT", "MRII")


Caso os dados estejam armazenados como fatores, transforme-os primeiro em “character” com a função as.character() e depois em “numeric” com a função as.numeric():

MultRen$MR = as.numeric(as.character(MultRen$MR))
MultRen$MRI = as.numeric(as.character(MultRen$MRI))
MultRen$MRT = as.numeric(as.character(MultRen$MRT))
MultRen$MRII = as.numeric(as.character(MultRen$MRII))


Para ver a tabela de dados, utilize a função View() ou simplesmente digite “MultRen” no Console do RStudio:

MultRen
##      Setores         MR      MRI        MRT     MRII
## 1       Agro 0.23909638 2.297985 0.41604616 3.998671
## 2   Ind.Extr 0.29996428 2.383660 0.52196102 4.147752
## 3   Ind.Tran 0.36678896 2.586250 0.63824110 4.500275
## 4       SIUP 0.26915304 2.643962 0.46834707 4.600697
## 5       Cons 0.36257345 1.810757 0.63090580 3.150856
## 6        Com 0.43314165 1.383320 0.75369992 2.407084
## 7     Transp 0.44378838 1.706910 0.77222605 2.970155
## 8       Info 0.39838932 1.715025 0.69322818 2.984276
## 9      Finan 0.37988304 1.523879 0.66102582 2.651667
## 10      Imob 0.03833075 3.117216 0.06669846 5.424196
## 11 Otrs.Serv 0.48527792 1.344106 0.84442106 2.338848
## 12       Adm 0.75579774 1.144139 1.31514643 1.990890


Conforme anteriormente, podemos gerar uma tabela com a função kable() do pacote knitr e adicionar extras de formatação com a função kable_styling() do pacote kableExtra e auxílio do operador pipe %>% do pacote dplyr:

kable(MultRen, caption = "Multiplicadores de Renda", align = "lcccc") %>%
   kable_styling(bootstrap_options = "striped", full_width = FALSE) %>% 
   footnote(general = "Elaboração própria com dados da MIP do IBGE (2015).",
           general_title = "Fonte:",
           footnote_as_chunk = TRUE, title_format = c("bold"))
Multiplicadores de Renda
Setores MR MRI MRT MRII
Agro 0.2390964 2.297985 0.4160462 3.998670
Ind.Extr 0.2999643 2.383660 0.5219610 4.147752
Ind.Tran 0.3667890 2.586250 0.6382411 4.500275
SIUP 0.2691530 2.643962 0.4683471 4.600697
Cons 0.3625734 1.810757 0.6309058 3.150856
Com 0.4331417 1.383320 0.7536999 2.407084
Transp 0.4437884 1.706910 0.7722261 2.970155
Info 0.3983893 1.715025 0.6932282 2.984276
Finan 0.3798830 1.523879 0.6610258 2.651667
Imob 0.0383307 3.117215 0.0666985 5.424196
Otrs.Serv 0.4852779 1.344106 0.8444211 2.338848
Adm 0.7557977 1.144139 1.3151464 1.990890
Fonte: Elaboração própria com dados da MIP do IBGE (2015).


Interpretação

Os Multiplicadores de Renda do Setor 1 (Agro), por exemplo, podem ser interpretados como:

  • Multiplicador Simples de Renda (MR): uma variação de demanda de R$1,00 no Setor 1 (Agro) gera R$0.2391 de renda na economia.
  • Multiplicador de Renda (Tipo I) (MRI): para cada unidade de renda gerada diretamente no Setor 1 (Agro) tem-se um efeito multiplicador de R$2.298 na economia.
  • Multiplicador Total de Renda Truncado (MRT): uma variação de demanda de R$1,00 no Setor 1 (Agro) gera R$0.416 de renda na economia, incluindo o efeito induzido (apenas nos \(n\) setores produtivos).
  • Multiplicador de Renda (Tipo II) (MRII): para cada unidade de renda gerada diretamente no Setor 1 (Agro) tem-se um efeito multiplicador de R$3.9987 na economia, incluindo o efeito induzido (apenas nos \(n\) setores produtivos).


Com a tabela MultRen (tabela com os multiplicadores) podemos fazer alguns gráficos com o pacote ggplot2 (e auxílio do pacote scales):


Multiplicadores Simples de Renda

ggplot(MultRen, aes(x = factor(Setores, levels = unique(Setores)), y = MR)) +
  geom_col() +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab("Setores") +
  ylab(" ") +
  ggtitle("Multiplicadores Simples de Renda") +
  labs(subtitle = "2015",
       caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  geom_text(aes(label = round(MR, digits = 2)), vjust = -0.5, size = 3) +
  scale_y_continuous(labels = scales::number_format(accuracy = 0.01), 
                     limits = c(0,1),
                     breaks = seq(from = 0, to = 1, by = 0.25))


Multiplicadores de Renda (Tipo I)

ggplot(MultRen, aes(x = factor(Setores, levels = unique(Setores)), y = MRI)) +
  geom_col() +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab("Setores") +
  ylab(" ") +
  ggtitle("Multiplicadores de Renda (Tipo I)") +
  labs(subtitle = "2015") +
  labs(subtitle = "2015",
       caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  geom_text(aes(label = round(MRI, digits = 2)), vjust = -0.5, size = 3) +
  scale_y_continuous(labels = scales::number_format(accuracy = 0.01),
                     limits = c(0,3.5),
                     breaks = seq(from = 0, to = 3.5, by = 0.5))


Multiplicadores Totais de Renda (truncados)

ggplot(MultRen, aes(x = factor(Setores, levels = unique(Setores)), y = MRT)) +
  geom_col() +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab("Setores") +
  ylab(" ") +
  ggtitle("Multiplicadores Totais de Renda (truncados)") +
  labs(subtitle = "2015") +
  labs(subtitle = "2015",
       caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  geom_text(aes(label = round(MRT, digits = 2)), vjust = -0.5, size = 3) +
  scale_y_continuous(labels = scales::number_format(accuracy = 0.01),
                     limits = c(0,1.5),
                     breaks = seq(from = 0, to = 1.5, by = 0.25))


Multiplicadores de Renda (Tipo II)

ggplot(MultRen, aes(x = factor(Setores, levels = unique(Setores)), y = MRII)) +
  geom_col() +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab("Setores") +
  ylab(" ") +
  ggtitle("Multiplicadores de Renda (Tipo II)") +
  labs(subtitle = "2015") +
  labs(subtitle = "2015",
       caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  geom_text(aes(label = round(MRII, digits = 2)), vjust = -0.5, size = 3) +
  scale_y_continuous(labels = scales::number_format(accuracy = 0.01),
                     limits = c(0,6),
                     breaks = seq(from = 0, to = 6, by = 0.5))


6.3. Outros

Similarmente, podemos calcular outros multiplicadores com a metodologia de insumo-produto:

  • Valor-adicionado
  • Impostos indiretos
  • Energia
  • Emissões
  • Água

Observação: O cálculo dos multiplicadores depende da disponibilidade de dados. No caso de multiplicadores de emissões de \(\mathsf{CO_{2}}\), por exemplo, é necessário ter dados setoriais de volume de emissões.


7. Índices de Ligação

7.1. Índices de Ligação HR

Com base em Rasmussen (1952) e Hirschman (1958) e no modelo básico de insumo-produto (modelo de Leontief), podemos avaliar quais setores possuem maior poder de encadeamento dentro do sistema econômico. Ou seja, quais setores têm impacto acima da média sobre outros setores da economia. Para tal, podemos calcular dois índices:

  • Índice de ligação para trás
  • Índice de ligação para frente


A base de cálculo dos índices é feita com informações da matriz inversa de Leontief (\(\mathbf{B}\)). Leva-se em consideração as seguintes informações:

Elementos Descrição
\(b_{ij}\) Elementos da matriz inversa de Leontief
\(b_{.j} = \sum_{i=1}^{n}b_{ij}\) Soma dos elementos de \(\mathbf{B}\) nas colunas
\(b_{i.} = \sum_{j=1}^{n}b_{ij}\) Soma dos elementos de \(\mathbf{B}\) nas linhas
\(b_{..} = \sum_{i=1}^{n}\sum_{j=1}^{n}b_{ij}\) Soma de todos os elementos de \(\mathbf{B}\)
\(n\) Número de setores
\(\frac{b_{.j}}{n}\) Valor médio dos elementos na coluna \(j\)
\(\frac{b_{i.}}{n}\) Valor médio dos elementos na linha \(i\)
\(B^{*} = \frac{b{..}}{n^{2}}\) Média dos elementos de \(\mathbf{B}\)


Com essas informações, podemos calcular os índices de ligação da seguinte forma:


Índice de ligação para trás:

Os encadeamentos para trás (poder de dispersão) – \(U_{j}\) – determinam o quanto um setor demanda dos demais setores da economia:

\[U_{j} = \frac{b_{.j}/n}{B^{*}}~~~~~~~~(36)\]

\(U_{j} > 1\) indica que uma mudança unitária na demanda final do setor \(j\) cria um aumento acima da média na economia. Ou seja, o setor \(j\) gera uma resposta dos outros setores acima da média.


Índice de ligação para frente:

Os encadeamentos para frente (sensibilidade da dispersão) – \(U_{i}\) – determinam o quanto este setor é demandado pelos demais setores da economia:

\[U_{i} = \frac{b_{i.}/n}{B^{*}}~~~~~~~~(37)\]

\(U_{i} > 1\) indica que uma mudança unitária na demanda final de todos os setores cria um aumento acima da média no setor \(i\). Ou seja, o setor \(i\) tem uma dependência acima da média da produção dos outros setores.


Se

\[U_{j} = \frac{b_{.j}/n}{B^{*}} > 1\] e

\[U_{i} = \frac{b_{i.}/n}{B^{*}} > 1\]

então o setor é considerado um SETOR-CHAVE na economia.


Os setores-chave são setores que contribuem acima da média para o crescimento da economia por possuírem fortes efeitos de encadeamento em termos do fluxo de bens e serviços.


Observação: Para calcular o encadeamento para frente, utiliza-se também na literatura o modelo de insumo-produto pelo lado da oferta. Ou seja, a matriz inversa de Ghosh (\(\mathbf{G}\)).


Índice de ligação para frente (com Ghosh):

Similarmente, os encadeamentos para frente (sensibilidade da dispersão) – \(U^{G}_{i}\) – determinam o quanto este setor é demandado pelos demais setores da economia:

\[U^{G}_{i} = \frac{g_{i.}/n}{G^{*}}~~~~~~~~(38)\]

em que \(g_{i.}\) representa a soma dos elementos de \(\mathbf{G}\) nas linhas; e \(G^{*}\) a média dos elementos de \(\mathbf{G}\).

\(U^{G}_{i} > 1\) indica que uma mudança unitária na demanda final de todos os setores cria um aumento acima da média no setor \(i\). Ou seja, o setor \(i\) tem uma dependência acima da média da produção dos outros setores.


Coeficientes de Variação:

O efeito multiplicador acima da média não implica alto número de ligações. Para tal, utiliza-se na literatura os coeficientes de variação para mostrar como as ligações se espalham pelos setores:

Os valores de \(V_{.j}\) associam-se ao índice de poder de dispersão (\(U_{j}\)):

\[V_{.j} = \frac{\sqrt{\frac{1}{n-1}\sum_{i=1}^{n}[b_{ij}-(b_{.j}/n)]^2}}{b_{.j}/n}\]

Quanto menor for esta medida, maior será o número de setores atingidos pela variação na demanda final do setor \(j\). Assim, se o setor apresentar \(U_{j}\) > 1 e um \(V_{.j}\) baixo, isto significa que a atividade tem grande poder de dispersão e atinge muitos setores na economia.

Os valores de \(V_{i.}\) associam-se ao índice de sensibilidade de dispersão (\(U_{i}\)):

\[V_{i.} = \frac{\sqrt{\frac{1}{n-1}\sum_{i=1}^{n}[b_{ij}-(b_{i.}/n)]^2}}{b_{i.}/n}\]

Quanto menor for esta medida, maior será o número de setores atendidos pelas vendas do setor \(i\). Assim, se o setor apresentar \(U_{i}\) > 1 e um \(V_{i.}\) baixo, o mesmo apresenta grande sensibilidade à dispersão e atinge um grande número de atividades produtivas.


Observação: Se ambas as medidas forem baixas, a interdependência da atividade com os demais setores é bem distribuída.


Índices de Ligação HR e Coeficientes de Variação


A soma dos elementos de \(\mathbf{B}\) nas colunas (\(b_{.j} = \sum_{i=1}^{n}b_{ij}\)) e nas linhas (\(b_{i.} = \sum_{j=1}^{n}b_{ij}\)) podem ser encontradas com as funções colSums() e rowSums():

SC = colSums(B)
SL = rowSums(B)

Os valores médios dos elementos na coluna \(j\) (\(\frac{b_{.j}}{n}\)) e na linha \(i\) (\(\frac{b_{i.}}{n}\)) podem ser encontrados com:

MC = SC / n
ML = SL / n

A média dos elementos de \(\mathbf{B}\) (\(B^{*} = \frac{b{..}}{n^{2}}\)) é calculada com auxílio da função sum() e o número de setores (\(n\)):

Bstar = sum(B) / n ** 2


Com isso, os Índices de Ligação para trás (BL) – \(U_{j} = \frac{b_{.j}/n}{B^{*}}\) – e os Índices de Ligação para frente (FL) – \(U_{i} = \frac{b_{i.}/n}{B^{*}}\) – são encontrados com:

BL = MC / Bstar
FL = ML / Bstar


Similarmente, podemos encontrar os Índices de Ligação para frente com a matriz de Ghosh (denominado aqui FLG):

SLG = rowSums(G)
MLG = SLG / n
Gstar = sum(G) / n ** 2
FLG = MLG / Gstar


Para juntar os índices em uma única tabela de dados (data frame), podemos utilizar novamente a função cbind(). Além disso, podemos usar a função as.data.frame() para transformar o objeto em data frame e a função colnames() para determinar o nome das colunas:

IndLig = cbind(Setores, BL, FL, FLG)
IndLig = as.data.frame(IndLig)
colnames(IndLig) = c("Setores", "BL", "FL", "FLG")


Caso os dados estejam armazenados como fatores, transforme-os primeiro em “character” com a função as.character() e depois em “numeric” com a função as.numeric():

IndLig$BL = as.numeric(as.character(IndLig$BL))
IndLig$FL = as.numeric(as.character(IndLig$FL))
IndLig$FLG = as.numeric(as.character(IndLig$FLG))


Para ver a tabela de dados, utilize a função View() ou simplesmente digite “IndLig” no Console do RStudio:

IndLig
##      Setores        BL        FL       FLG
## 1       Agro 1.0350224 0.8114232 1.1182272
## 2   Ind.Extr 1.0666956 0.7549857 1.1513243
## 3   Ind.Tran 1.2930103 2.0424267 1.0632905
## 4       SIUP 1.1726673 1.0097477 1.3142529
## 5       Cons 1.0905463 0.7324915 0.6885850
## 6        Com 0.9228499 1.0576728 0.9593154
## 7     Transp 1.1080226 1.0350979 1.2908795
## 8       Info 0.9877713 0.8527934 1.0677632
## 9      Finan 0.8985112 0.9747558 1.0494230
## 10      Imob 0.6684403 0.7034085 0.7226219
## 11 Otrs.Serv 0.9234591 1.3812388 0.9851576
## 12       Adm 0.8330037 0.6439580 0.5891596


Para identificar os setores-chave, podemos verificar quais setores apresentam BL e FLG maiores que a unidade (1) simultaneamente. Para tal, podemos criar uma nova coluna na tabela de dados com a função mutate() do pacote dplyr e o teste lógico abaixo:

IndLig = mutate(IndLig, Setores.Chave = ifelse(BL > 1 &
                                                 FLG > 1, "Setor-Chave", "-"))

Confira novamente a tabela de dados:

IndLig
##      Setores        BL        FL       FLG Setores.Chave
## 1       Agro 1.0350224 0.8114232 1.1182272   Setor-Chave
## 2   Ind.Extr 1.0666956 0.7549857 1.1513243   Setor-Chave
## 3   Ind.Tran 1.2930103 2.0424267 1.0632905   Setor-Chave
## 4       SIUP 1.1726673 1.0097477 1.3142529   Setor-Chave
## 5       Cons 1.0905463 0.7324915 0.6885850             -
## 6        Com 0.9228499 1.0576728 0.9593154             -
## 7     Transp 1.1080226 1.0350979 1.2908795   Setor-Chave
## 8       Info 0.9877713 0.8527934 1.0677632             -
## 9      Finan 0.8985112 0.9747558 1.0494230             -
## 10      Imob 0.6684403 0.7034085 0.7226219             -
## 11 Otrs.Serv 0.9234591 1.3812388 0.9851576             -
## 12       Adm 0.8330037 0.6439580 0.5891596             -

Observe que uma nova coluna indicará os setores-chave com base nos índices BL e FLG.


Conforme anteriormente, uma tabela mais organizada pode ser gerada com a função kable() do pacote knitr e a função kable_styling() do pacote kableExtra:

kable(IndLig, caption = "Índices de Ligação e Setores-Chave", align = "lcccc") %>%
   kable_styling(bootstrap_options = "striped", full_width = FALSE) %>% 
   footnote(general = "Elaboração própria com dados da MIP do IBGE (2015).",
           general_title = "Fonte:",
           alphabet = "Setores-Chave definidos com base nos índices BL e FLG.",
           alphabet_title = "Nota:",
           footnote_as_chunk = TRUE, title_format = c("bold"))
Índices de Ligação e Setores-Chave
Setores BL FL FLG Setores.Chave
Agro 1.0350224 0.8114232 1.1182272 Setor-Chave
Ind.Extr 1.0666956 0.7549857 1.1513243 Setor-Chave
Ind.Tran 1.2930103 2.0424267 1.0632905 Setor-Chave
SIUP 1.1726673 1.0097477 1.3142529 Setor-Chave
Cons 1.0905463 0.7324915 0.6885850
Com 0.9228499 1.0576728 0.9593154
Transp 1.1080226 1.0350979 1.2908795 Setor-Chave
Info 0.9877713 0.8527934 1.0677632
Finan 0.8985112 0.9747558 1.0494230
Imob 0.6684403 0.7034085 0.7226219
Otrs.Serv 0.9234591 1.3812388 0.9851576
Adm 0.8330037 0.6439580 0.5891596
Fonte: Elaboração própria com dados da MIP do IBGE (2015).
Nota: a Setores-Chave definidos com base nos índices BL e FLG.


Podemos utilizar a tabela de dados IndLig para fazer um gráfico com o pacote ggplot2. Além do ggplot2, vamos utilizar o pacote scales para formatar os eixos e o pacote ggrepel para evitar sobreposição dos rótulos (nome dos setores).


Faça a leitura dos três pacotes:

library(ggplot2)
library(scales)
library(ggrepel)

Observação: Caso não tenha instalado os pacontes acima, utilize a função install.packages():

install.packages("ggplot2")
install.packages("scales")
install.packages("ggrepel")


O gráfico com os índices de ligação e setores-chave pode ser feito considerando 4 quadrantes:

  • Setor-Chave: \(U_{j} = \frac{b_{.j}/n}{B^{*}} > 1\) e \(U_{i}^{G} = \frac{g_{i.}/n}{G^{*}} > 1\)
  • Forte Encadeamento para trás: \(U_{j} = \frac{b_{.j}/n}{B^{*}} > 1\) e \(U_{i}^{G} = \frac{g_{i.}/n}{G^{*}} < 1\)
  • Fraco Encadeamento: \(U_{j} = \frac{b_{.j}/n}{B^{*}} < 1\) e \(U_{i}^{G} = \frac{g_{i.}/n}{G^{*}} < 1\)
  • Forte Encadeamento para frente: \(U_{j} = \frac{b_{.j}/n}{B^{*}} < 1\) e \(U_{i}^{G} = \frac{g_{i.}/n}{G^{*}} > 1\)


ggplot(IndLig, aes(x = FLG, y = BL)) +
  geom_point() +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab(expression("Índice de ligação para frente"~"("*U[i]*")")) +
  ylab(expression("Índice de ligação para trás"~"("*U[j]*")")) +
  ggtitle("Índices de Ligação e Setores-Chave") +
  labs(subtitle = "2015",
       caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).\nNota: Índices de ligação para frente calculados com a matriz inversa de Ghosh.") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  geom_text_repel(aes(label = Setores), vjust = 0.8, size = 2.5)+
  scale_y_continuous(labels = scales::number_format(accuracy = 0.01), 
                    limits = c(0.5,1.5),
                    breaks = seq(from = 0.5, to = 2, by = 0.25)) +
  scale_x_continuous(labels = scales::number_format(accuracy = 0.01), 
                    limits = c(0.5,1.5),
                    breaks = seq(from = 0.5, to = 1.5, by = 0.25)) +
  geom_hline(yintercept=1, linetype="dashed", color = "black") +
  geom_vline(xintercept=1, linetype="dashed", color = "black") +
  annotate("text", x=1.42, y=1.5, 
           label= "Setor-Chave", colour='black', size=3) +
  annotate('text', x=0.65, y=1.5, 
           label='Forte encadeamento para trás', colour='black', size=3) +
  annotate('text', x=0.60, y=0.5, 
           label='Fraco encadeamento', colour='black', size=3) +
  annotate('text', x=1.35, y=0.5, 
           label='Forte encadeamento para frente', colour='black', size=3)



Por fim, os coeficientes de variação são calculados com:

Vj = (((1 / (n - 1)) * (rowSums((B - MC) ** 2))) ** 0.5) / MC
Vi = (((1 / (n - 1)) * (colSums((B - ML) ** 2))) ** 0.5) / ML


Para juntar os coeficientes em uma única tabela de dados (data frame), podemos utilizar o mesmo procedimento adotado acima:

CoefVar = cbind(Setores, Vj, Vi)
CoefVar = as.data.frame(CoefVar)
colnames(CoefVar) = c("Setores", "Vj", "Vi")


Caso os dados estejam armazenados como fatores, podemos fazer a seguinte transformação:

CoefVar$Vj = as.numeric(as.character(CoefVar$Vj))
CoefVar$Vi = as.numeric(as.character(CoefVar$Vi))


Para ver a tabela de dados, utilize a função View() ou simplesmente digite “CoefVar” no Console do RStudio:

CoefVar
##      Setores       Vj       Vi
## 1       Agro 2.129466 2.708702
## 2   Ind.Extr 2.082497 2.889003
## 3   Ind.Tran 2.278957 1.298590
## 4       SIUP 2.432773 2.771267
## 5       Cons 2.122717 3.124222
## 6        Com 2.251192 1.973377
## 7     Transp 2.092317 2.213068
## 8       Info 2.384806 2.784718
## 9      Finan 2.573143 2.431224
## 10      Imob 3.087693 3.159154
## 11 Otrs.Serv 2.395742 1.566024
## 12       Adm 2.512822 3.353842


Conforme anteriormente, uma tabela mais organizada pode ser gerada com:

kable(CoefVar, caption = "Coeficientes de Variação", align = "lcc") %>%
   kable_styling(bootstrap_options = "striped", full_width = FALSE) %>% 
   footnote(general = "Elaboração própria com dados da MIP do IBGE (2015).",
           general_title = "Fonte:",
           footnote_as_chunk = TRUE, title_format = c("bold"))
Coeficientes de Variação
Setores Vj Vi
Agro 2.129466 2.708702
Ind.Extr 2.082498 2.889003
Ind.Tran 2.278957 1.298590
SIUP 2.432773 2.771267
Cons 2.122717 3.124222
Com 2.251192 1.973377
Transp 2.092317 2.213068
Info 2.384806 2.784718
Finan 2.573143 2.431224
Imob 3.087693 3.159154
Otrs.Serv 2.395742 1.566024
Adm 2.512822 3.353842
Fonte: Elaboração própria com dados da MIP do IBGE (2015).


7.2. Índices Puros de Ligação

Conforme observado por Guilhoto (2009), os índices de ligação de Hirschman-Rasmussen (HR) não levam em consideração os níveis de produção de cada setor analisado. Portanto, Guilhoto et al. (1994, 1996) propõem uma abordagem que leva em consideração a importância do setor para o restante da economia em termos da produção de cada setor e da interação deste com outros setores, minimizando as limitações dos índices de ligação para frente e para trás.

A abordagem consiste nos Índices Puros de Ligação – também denominado GHS.

Baseado em Guilhoto et al. (1996), define-se inicialmente a matriz \(\mathbf{A}\) (matriz de coeficientes técnicos) para um sistema de insumo-produto da seguinte maneira:

\[\mathbf{A} = \left[\begin{array} {cc} \mathbf{A}_{jj} & \mathbf{A}_{jr} \\ \mathbf{A}_{rj} & \mathbf{A}_{rr} \\ \end{array} \right]~~~~~~~~(39)\]

em que \(\mathbf{A}_{jj}\) e \(\mathbf{A}_{rr}\) são matrizes que representam coeficientes diretos de insumos do setor \(j\) e do restante da economia \(r\) (economia menos o setor \(j\)), respectivamente; \(\mathbf{A}_{rj}\) e \(\mathbf{A}_{jr}\) representam matrizes dos insumos diretos comprados pelo restante da economia do setor \(j\) e os insumos diretos comprados pelo setor \(j\) do restante da economia, respectivamente.

A partir da matriz \(\mathbf{A}\), é possível representar a matriz inversa de Leontief (\(\mathbf{B}\)) como:

\[\mathbf{B} = (\mathbf{I} - \mathbf{A})^{-1} = \left[\begin{array} {cc} \mathbf{B}_{jj} & \mathbf{B}_{jr} \\ \mathbf{B}_{rj} & \mathbf{B}_{rr} \\ \end{array} \right] = \left[\begin{array} {cc} \Delta_{jj} & \mathbf{0} \\ \mathbf{0} & \Delta_{rr} \\ \end{array} \right] \left[\begin{array} {cc} \Delta_{j} & \mathbf{0} \\ \mathbf{0} & \Delta_{r} \\ \end{array} \right] \left[\begin{array} {cc} \mathbf{I} & \mathbf{A}_{jr}\Delta_{r}\\ \mathbf{A}_{rj}\Delta_{j} & \mathbf{I} \\ \end{array} \right] ~~~~~~~~(40)\]

em que os elementos são dados por:

\[\Delta_{j} = (\mathbf{I}-\mathbf{A}_{jj})^{-1}\] \[\Delta_{r} = (\mathbf{I}-\mathbf{A}_{rr})^{-1}\] \[\Delta_{jj} = (\mathbf{I}-\Delta_{j}\mathbf{A}_{jr}\Delta_{r}\mathbf{A}_{rj})^{-1}\] \[\Delta_{rr} = (\mathbf{I}-\Delta_{r}\mathbf{A}_{rj}\Delta_{j}\mathbf{A}_{jr})^{-1}\]

A partir da matriz calculada na equação (40), pode-se representar o caso geral de um modelo de insumo-produto, \(\mathbf{x} = (\mathbf{I} - \mathbf{A})^{-1}\mathbf{y}\), e derivar um conjunto de índices que podem ser usados para ordenar os setores tanto em termos de sua importância no valor da produção gerado quanto para verificar como ocorre o processo de produção na economia.

A partir da equação geral, pode-se obter:

\[\left[\begin{array} {c} \mathbf{x}_{j} \\ \mathbf{x}_{r} \\ \end{array} \right] = \left[\begin{array} {cc} \Delta_{jj} & \mathbf{0} \\ \mathbf{0} & \Delta_{rr} \\ \end{array} \right] \left[\begin{array} {cc} \Delta_{j} & \mathbf{0} \\ \mathbf{0} & \Delta_{r} \\ \end{array} \right] \left[\begin{array} {cc} \mathbf{I} & \mathbf{A}_{jr}\Delta_{r}\\ \mathbf{A}_{rj} & \mathbf{I} \\ \end{array} \right] \left[\begin{array} {c} \mathbf{y}_{j} \\ \mathbf{y}_{r} \\ \end{array} \right]~~~~~~~~(41)\]

Realizando a multiplicação do lado direito da equação, obtém-se:

\[\left[\begin{array} {c} \mathbf{x}_{j} \\ \mathbf{x}_{r} \\ \end{array} \right] = \left[\begin{array} {cc} \Delta_{jj} & \mathbf{0} \\ \mathbf{0} & \Delta_{rr} \\ \end{array} \right] \left[\begin{array} {c} \Delta_{j}\mathbf{y}_{j} + \Delta_{j}\mathbf{A}_{jr}\Delta_{r}\mathbf{y}_{r} \\ \Delta_{r}\mathbf{A}_{rj}\Delta_{j}\mathbf{y}_{j} + \Delta_{r}\mathbf{y}_{r} \\ \end{array} \right]~~~~~~~~(42)\]

A partir da Equação (42), podemos extrair o Índice Puro de Ligação para trás (PBL) e o Índice Puro de Ligação para frente (PFL):

\[PBL = \Delta_{r}\mathbf{A}_{rj}\Delta_{j}\mathbf{y}_{j}~~~~~~~~(43)\] \[PFL = \Delta_{j}\mathbf{A}_{jr}\Delta_{r}\mathbf{y}_{r}~~~~~~~~(44)\]

Assim, temos as seguintes interpretações:

  • O Índice Puro de Ligação para trás (PBL) representa o impacto do valor da produção total do setor \(j\) sobre o restante da economia \(r\), livre da demanda de insumos próprios e dos retornos do restante da economia para o setor.
  • O Índice Puro de Ligação para frente (PFL) indica o impacto do valor da produção total do restante da economia sobre o setor \(j\).

O Índice Puro Total das Ligações (PTL), por sua vez, é a soma dos dois índices acima, expressos em valores correntes:

\[PTL = PBL + PFL~~~~~~~~(45)\]

Como demonstrado por Guilhoto e Sesso Filho (2005), pode-se calcular também os Índices Puros de Ligação Normalizados, dividindo-se os índices puros pelo seu valor médio.

O Índice Puro de Ligação Normalizado para trás (PBLN) é dado por:

\[PBLN = \frac{PBL}{PBLm}~~~~~~~~(46)\]

em que PBLm representa a média dos índices puros de ligação de todos os setores, dada por:

\[PBLm = \frac{\sum_{i=1}^{n}PBL_{i}}{n}~~~~~~~~(47)\]

Procedimento análogo pode ser realizado para calcular o Índice Puro de Ligação Normalizado para frente (PFLN) e o Índice Puro Total de Ligação Normalizado (PTLN).


Índices Puros de Ligação


Para calcular os Índices Puros de Ligação podemos usar o loop abaixo. Inicialmente, criamos uma matriz com 3 colunas e \(n\) linhas para receber os resultados:

IPL = matrix(NA, ncol = 3, nrow = n)


Os cálculos são feitos com o seguinte loop:

for (s in 1:n) {
  
  for (i in 1:n) {
    for (j in 1:n) {
      
      if (s==i) {
        if (i==j) {
          
          yj  = y[i]
          yr  = y[-i]
          
          Ajj = A[i,j]
          DJ  = solve(1-Ajj)
          
          Ajr = A[i,-j]
          Arj = A[-i,j]
          Arr = A[-i,-j]
          
          DR  = solve(diag(n-1)-Arr)
          
          PBL = sum (DR %*% Arj %*% DJ %*% yj)
          PFL = DJ %*% Ajr %*% DR %*% yr
          PTL = PBL + PFL
          
          IPuros = c(PBL,PFL,PTL)
          
        }}}}
  
  IPL[s,] = IPuros
}     


Observe que os resultados são salvos na matriz criada no passo anterior (IPL). Para ver os resultados, utilize a função View() ou digite no Console do RStudio:

IPL
##            [,1]      [,2]      [,3]
##  [1,] 142978.18 230171.19  373149.4
##  [2,]  80487.71 135612.33  216100.0
##  [3,] 892910.29 629213.03 1522123.3
##  [4,]  57269.73 178268.15  235537.9
##  [5,] 372945.03  47487.50  420432.5
##  [6,] 317986.98 389061.76  707048.7
##  [7,] 105464.54 314577.77  420042.3
##  [8,]  82142.77 153966.38  236109.2
##  [9,]  94124.43 253995.10  348119.5
## [10,]  48447.27  88072.88  136520.2
## [11,] 327337.36 520532.48  847869.8
## [12,] 443933.94  27561.34  471495.3


Para encontrar os Índices Puros de Ligação Normalizados podemos realizar as seguintes operações:

IPLm = (colSums(IPL) / n)
IPLm = as.vector(IPLm)
IPLN = IPL %*% (diag(1 / IPLm))


Similarmente aos passos realizados anteriormente, podemos transformar a matriz IPLN em tabela de dados e inserir os nomes dos setores com:

IPLN = as.data.frame(IPLN)
IPLN = cbind(Setores, IPLN)
colnames(IPLN) = c("Setores", "PBLN", "PFLN", "PTL")


Para ver a tabela de dados, utilize a função View() ou simplesmente digite “IPLN” no Console do RStudio:

IPLN
##      Setores      PBLN      PFLN       PTL
## 1       Agro 0.5784632 0.9304483 0.7545296
## 2   Ind.Extr 0.3256383 0.5482018 0.4369668
## 3   Ind.Tran 3.6125494 2.5435424 3.0778215
## 4       SIUP 0.2317027 0.7206345 0.4762712
## 5       Cons 1.5088664 0.1919643 0.8501389
## 6        Com 1.2865163 1.5727505 1.4296935
## 7     Transp 0.4266900 1.2716550 0.8493499
## 8       Info 0.3323344 0.6223966 0.4774264
## 9      Finan 0.3808100 1.0267545 0.7039179
## 10      Imob 0.1960087 0.3560275 0.2760517
## 11 Otrs.Serv 1.3243462 2.1042102 1.7144419
## 12       Adm 1.7960744 0.1114145 0.9533907


Para gerar a tabela mais organizada, podemos usar novamente a função kable() do pacote knitr e a função kable_styling() do pacote kableExtra:

kable(IPLN, caption = "Índices Puros de Ligação Normalizados", align = "lccc") %>%
   kable_styling(bootstrap_options = "striped", full_width = FALSE) %>% 
   footnote(general = "Elaboração própria com dados da MIP do IBGE (2015).",
           general_title = "Fonte:",
           footnote_as_chunk = TRUE, title_format = c("bold"))
Índices Puros de Ligação Normalizados
Setores PBLN PFLN PTL
Agro 0.5784632 0.9304483 0.7545296
Ind.Extr 0.3256383 0.5482018 0.4369668
Ind.Tran 3.6125494 2.5435424 3.0778215
SIUP 0.2317027 0.7206345 0.4762712
Cons 1.5088664 0.1919643 0.8501389
Com 1.2865163 1.5727505 1.4296935
Transp 0.4266900 1.2716550 0.8493499
Info 0.3323344 0.6223966 0.4774264
Finan 0.3808100 1.0267545 0.7039179
Imob 0.1960087 0.3560275 0.2760517
Otrs.Serv 1.3243462 2.1042102 1.7144419
Adm 1.7960744 0.1114145 0.9533907
Fonte: Elaboração própria com dados da MIP do IBGE (2015).


8. Campo de Influência

Apesar de os índices de ligação Hirschman-Rasmussen avaliarem a importância dos setores em termos de seus impactos no sistema como um todo, há uma dificuldade de visualização desses principais elos de ligação (GUILHOTO, 2011).

Portanto, para visualizar os principais elos de ligação dentro da economia, Sonis e Hewings (1989, 1994) desenvolveram a metodologia denominada campo de influência.

O conceito de campo de influência mostra como se distribuem as mudanças dos coeficientes diretos no sistema econômico como um todo, permitindo a determinação de quais relações entre os setores seriam mais importantes dentro do processo produtivo. Ou seja, determinação dos setores que apresentam um maior poder de influência sobre os demais, ou melhor, quais coeficientes que, alterados, teriam um maior impacto no sistema como um todo.

Para o cálculo do campo de influência parte-se da matriz de coeficientes técnicos de produção, \(\mathbf{A} = \{a_{ij}\}\), e uma matriz de variações incrementais nesses coeficientes técnicos dada por \(\mathbf{E}=\{\varepsilon_{ij}\}\) com mesma dimensão de \(\mathbf{A}\) (\(n \times n\)).

A partir disso, calcula-se a matriz inversa de Leontief (\(\mathbf{A}\)) de duas formas:

  • Sem assumir incrementos:

\[\mathbf{B}=(\mathbf{I}-\mathbf{A})^{-1}=\{b_{ij}\}~~~~~~~~(48)\]

  • Com incrementos nos coeficientes técnicos \(a_{ij}\):

\[\mathbf{B(E)}=(\mathbf{I}-[\mathbf{A+E}])^{-1}=\{b_{ij}(E)\}~~~~~~~~(49)\]

De acordo com Sonis e Hewings (1989, 1994) e conforme especificado por Guilhoto (2011), se a variação for pequena e ocorrer em apenas um único coeficiente técnico, então:

\[\varepsilon_{ij} = \left\{\begin{array} {c} \varepsilon \: \forall \: i=i_{1},j=j_{1} \\ 0 \: \forall \: i \neq i_{1},j \neq j_{1} \\ \end{array} \right\}, \quad \varepsilon >0~~~~~~~~(50)\]

Dessa forma, tem uma aproximação do campo de influência pela seguinte expressão:

\[\mathbf{F}(\varepsilon_{ij})= \frac{\mathbf{B}(\varepsilon_{ij}) - \mathbf{B}}{\varepsilon_{ij}} =\{f_{kl}(\varepsilon_{ij})\}~~~~~~~~(51)\]

em que \(\mathbf{F}(\varepsilon_{ij})\) é a matriz (\(n \times n\)) do campo de influência da mudança no coeficiente técnico \(a_{ij}\) e \(k\) e \(l\) são índices similares a \(i\) e \(j\), definidos anteriormente, entretanto, utilizados para matriz \(\mathbf{F}(\varepsilon_{ij})\).

Este procedimento é repetido para todos os coeficientes de \(\mathbf{A}\), isto é, calculam-se matrizes \(\mathbf{F}\) para cada coeficiente técnico de \(\mathbf{A}\) assumindo-se variações isoladas incidindo sobre cada um.

Para determinar quais coeficientes técnicos possuem o maior campo de influência, calcula-se para a sua correspondente matriz \(\mathbf{F}(\varepsilon_{ij})\) o seguinte indicador:

\[S_{ij}= \sum_{k=1}^{n}\sum_{l=1}^{n}[f_{kl}(\varepsilon_{ij})]^{2}~~~~~~~~(52)\]

Cada coeficiente técnico \(a_{ij}\) de \(\mathbf{A}\) possuirá um valor associado \(S_{ij}\) calculado pelo procedimento acima.

Os coeficientes técnicos que possuírem os maiores valores de \(S_{ij}\) serão aqueles com os maiores campos de influência dentro da economia como um todo, ou seja, aqueles que apresentam relações setoriais com maior sensibilidade às mudanças, promovendo, assim, maiores impactos na economia.


Campo de Influência


O campo de influência pode ser calculado com o loop abaixo. Para tal, definimos primeiro o incremento (\(\varepsilon\) ou ee), a matriz de variações incrementais (\(\mathbf{E}\)) e a matriz de campo de influência (\(\mathbf{SI}\)) para receber os resultados.

ee = 0.001
E = matrix(0, ncol = n, nrow = n)
SI = matrix(0, ncol = n, nrow = n)

Repare que a matriz \(\mathbf{E}\) é inicialmente preenchida com zeros. O incremento é feito dentro do loop, para cada uma das relações intersetoriais.


O loop para cálculo do campo de influência é dado por:

for (i in 1:n) {
  for (j in 1:n) {
    E[i, j] = ee
    AE = A + E
    BE = solve(I - AE)
    FE = (BE - B) / ee
    FEq = FE * FE
    S = sum(FEq)
    SI[i, j] = S
    E[i, j] = 0
  }
}


Feito isso, temos a matriz de campo de influência (\(\mathbf{SI}\)) com os indicadores \(S_{ij}\). Assim, as principais ligações dentro da economia podem ser observadas com o gráfico abaixo.

sx = Setores[1:n, ]
sy = Setores[1:n, ]
data = expand.grid(X = sx, Y = sy)

ggplot(data,aes(X, Y, fill = SI)) + 
  geom_tile() +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab("Setores") +
  ylab("Setores") +
  ggtitle("Campo de Influência") +
  labs(subtitle = "2015",
       caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  theme(axis.text.x = element_text(angle=35, vjust = 0.7),
        axis.text.y = element_text(angle=35, hjust = 0.7)) +
  theme(legend.position = "none") +
  scale_fill_distiller(palette = "Greys", trans = "reverse")


Além disso, critérios adicionais podem ser adotados para facilitar a visualização. Podemos classificar os elos de ligação em:

  • Menores que a média (“< Média”)
  • Menores que a média mais um desvio-padrão (“< Média + DP”)
  • Menores que a média mais dois desvios-padrão (“< Média + 2DP”)
  • Maiores que a média mais dois desvios-padrão (“> Média + DP”)


Para tal, podemos transformar a matriz SI em tibble com a função as_tibble() do pacote tibble e usar as funções mutate_all(), funs() e case_when() do pacote dplyr para substituir os valores da matriz segundo os críterios definidos acima:

library(tibble)
SI2 = as_tibble(SI) %>% 
  mutate_all(funs(case_when(. < mean(SI) ~ 1,
                            . >= mean(SI) & . < (mean(SI) + sd(SI)) ~ 2,
                            . >= (mean(SI) + sd(SI)) & . < (mean(SI) + 2 * sd(SI)) ~ 3,
                            . >= (mean(SI) + 2 * sd(SI)) ~ 4)))


Para facilitar a visualização, podemos transformar os dados em fatores (objeto utilizado para expressar uma variável categórica):

SI2 = as.factor(as.matrix(SI2))


Novamente, podemos utilizar o pacote ggplot2 para refazer o gráfico de campo de influência com as 4 categorias definidas:

ggplot(data,aes(X, Y)) + 
  geom_tile(aes(fill = SI2)) +
  theme_bw() +
  theme(plot.background = element_rect(fill = "#e6f2ff", colour = "#e6f2ff")) +
  xlab("Setores") +
  ylab("Setores") +
  ggtitle("Campo de Influência") +
  labs(subtitle = "2015",
       caption = "Fonte: Elaboração própria com dados da MIP do IBGE (2015).") +
  theme(plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        plot.caption = element_text(hjust = 0)) +
  theme(axis.text.x = element_text(angle=35, vjust = 0.7),
        axis.text.y = element_text(angle=35, hjust = 0.7)) +
      scale_fill_manual(name = "SI",
        values=c("#e9e9e9", "#a9a9a9", "#3f3f3f", "#191919"),
        labels = c ("< Média", "< Média + DP", "< Média + 2DP", "> Média + DP"))


9. Exportando Resultados

Para exportar dados do R, podemos utilizar diferentes pacotes e funções. A escolha do pacote depende do formato dos dados. Entre os principais pacotes, podemos citar o readr e openxlsx.

Vamos usar o openxlsx para exportar no formato XLSX (Excel). Para tal, faça a leitura do pacote com a função library():

library(openxlsx)


Inicialmente, podemos criar um “workbook” para salvar os resultados com a função createWorkbook():

wb = createWorkbook()


Feito isso, podemos criar as abas (“sheets”) que serão incluídas no arquivo xlsx (Excel) com a função addWorksheet():

addWorksheet(wb, "MP")
addWorksheet(wb, "ME")
addWorksheet(wb, "MR")
addWorksheet(wb, "IndHR")
addWorksheet(wb, "CV")
addWorksheet(wb, "IPLN")
addWorksheet(wb, "SI")


Para salvar cada um dos resultados nas suas respectivas abas, usamos a função writeDataTable() ou writeData():

writeDataTable(wb, "MP", x = MultProd)
writeDataTable(wb, "ME", x = MultEmp)
writeDataTable(wb, "MR", x = MultRen)
writeDataTable(wb, "IndHR", x = IndLig)
writeDataTable(wb, "CV", x = CoefVar)
writeDataTable(wb, "IPLN", x = IPLN)
writeData(wb, "SI", x = SI, colNames = FALSE)

Observação: A função writeDataTable() foi usada no caso de objetos “data.frame” e a função writeData() no caso de objetos “matrix”. Use o help para mais detalhes: ?writeDataTable e ?writeData.


Por fim, para exportar os resultados, usamos a função saveWorkbook():

saveWorkbook(wb, file = "Resultados.xlsx", overwrite = TRUE)

O arquivo estará disponível na sua pasta “setada”.


Referências

GUILHOTO, J. J. M. Análise de Insumo-Produto: teoria e fundamentos. 2011. (MPRA Paper No. 32566)

GUILHOTO, J. J. M.; SONIS, M.; HEWINGS, G. J. D. Linkages and Multipliers in a Multiregional Framework: integration of alternative approaches. Urbana: University of Illinois. Regional Economics Applications Laboratory, 1996. (Discussion Paper, 96-T-8)

GUILHOTO, J. J. M; SONIS, M.; HEWINGS, G. J. D; MARTINS, E. B. Índices de Ligações e Setores-Chave na Economia Brasileira: 1959/80. Pesquisa e Planejamento Econômico, v. 24, n. 2, p. 287-314, 1994.

HADDAD, E. Applied General Equilibrium Models I and II. Núcleo de Economia Regional e Urbana da Universidade de São Paulo (NEREUS), 2020.

HADDAD, E.; VALE, V. A. Curso de Métodos de Análise Regional e Inter-Regional. Núcleo de Economia Regional e Urbana da Universidade de São Paulo (NEREUS). Programa de Extensão Nereides, 2017.

HIRSCHMAN, A. O. The Strategy of Economic Development. New Haven: Yale University Press, 1958.

IBGE - Instituto Brasileiro de Geografia e Estatística. Matriz de Insumo-Produto: Brasil, 2015. IBGE, Coordenação de Contas Nacionais. Rio de Janeiro: IBGE, 2018.

MILLER, R. E.; BLAIR, P. D. Input Output Analysis: foundations and extensions. Prentice Hall, 2009.

PEROBELLI, F. S. Métodos de Análise Regional I. Programa de Pós Graduação em Economia (PGGE) da Universidade Federal de Juiz de Fora (UFJF).

PEROBELLI, F. S.; VALE, V. A.; PIRES, M. M.; SANTOS, J. P. C.; ARAÚJO JÚNIOR, I. F. Estimativa da Matriz de Insumo-Produto da Bahia (2009): características sistêmicas da estrutura produtiva do estado. Revista Econômica do Nordeste, v. 46, n. 4, p. 97-115, 2015.

RASMUSSEN, P. N. Studies in Intersectoral Relations. Amsterdam: North-Holland, 1956.

SONIS, M.; HEWINGS, G. J. D. Fields of Influence in Input-Output Systems. Urbana: University of Illinois. Regional Economics Applications Laboratory, Mimeo, 1994.

SONIS, M.; HEWINGS, G. J. D. Error and Sensitivity Input-Output Analysis: a new approach. In: MILLER, R. R.; POLENSKE, K.R.; ROSEM A.Z. (Ed.) Frontiers of Input-Output Analysis. New York: Oxford University Press, 1989.

VALE, A. V. Análise de Insumo-Produto. Programa de Pós-graduação em Desenvolvimento Econômico (PPGDE) da Universidade Federal do Paraná (UFPR), 2020.


Outras Referências

GROLEMUND, G. Hands-on Programming with R: write your own functions and simulations. O’Reilly Media, Inc., 2014.

LONG, J. D.; TEETOR, P. R cookbook: proven recipes for data analysis, statistics, and graphics. O’Reilly Media, Inc., 2019.

VERZANI, J. Getting started with RStudio. O’Reilly Media, Inc., 2011.

WICKHAM, H. ggplot2: elegant graphics for data analysis. Springer, 2016.

WICKHAM, H.; GROLEMUND, G. R for Data Science: import, tidy, transform, visualize, and model data. O’Reilly Media, Inc., 2016.

ZUUR, A.; IENO, E. N.; MEESTERS, E. A Beginner’s Guide to R. Springer Science & Business Media, 2009.


Comentários ou Sugestões:

Prof. Vinícius A. Vale
vinicius.a.vale@gmail.com
viniciusvale@ufpr.br
Prof. Fernando S. Perobelli
fernandosalgueiro.perobelli@gmail.com
fernando.perobelli@ufjf.edu.br

Esta obra está licenciada com uma Licença
Creative Commons Atribuição-NãoComercial-CompartilhaIgual 4.0 Internacional